【2024年华为OD机试】(C卷,100分)- 输出指定字母在字符串的中的索引(Java JS PythonC/C++)

在这里插入图片描述

一、问题描述

题目描述

给定一个字符串,把字符串按照大写在前小写在后排序,输出排好后的第 K 个字母在原来字符串的索引。相同字母输出第一个出现的位置。

输入描述

输出描述

用例

用例 1

输入:

hAkDAjByBq 4

输出:

6

说明:
排好序后 AABBDhjkqy,第 4 个是 B,第一个出现的在原字符串 6 这个位置。(注:索引是从 0 开始)

解题思路

  1. 读取输入

    • 从标准输入读取一个字符串和一个整数 K
  2. 排序

    • 将字符串中的字符按照大写在前小写在后的顺序排序。具体来说,先将所有大写字母按字典序排序,然后将所有小写字母按字典序排序。
  3. 查找第 K 个字符

    • 在排序后的字符串中找到第 K 个字符。
  4. 查找原字符串中的索引

    • 在原字符串中查找第 K 个字符第一次出现的位置。

详细步骤

  1. 读取输入

    • 读取一行输入,包含一个字符串和一个整数 K
  2. 排序

    • 将字符串中的字符分为大写字母和小写字母。
    • 分别对大写字母和小写字母进行排序。
    • 将排序后的大写字母和小写字母拼接成一个新的字符串。
  3. 查找第 K 个字符

    • 在排序后的字符串中,找到第 K 个字符。
  4. 查找原字符串中的索引

    • 在原字符串中,从左到右查找第 K 个字符第一次出现的位置。

用例解释

用例 1
  • 输入:
    • hAkDAjByBq 4
  • 输出:
    • 6

解释

  • 原字符串:hAkDAjByBq
  • 排序后的字符串:AABBDhjkqy
  • 第 4 个字符是 B
  • 在原字符串中,B 第一次出现的位置是 6

通过上述步骤,我们可以高效地找到排好序后的第 K 个字符在原字符串中的索引。这种方法的时间复杂度主要由排序操作决定,为 O(n log n),其中 n 是字符串的长度。查找操作的时间复杂度为 O(n)

二、JavaScript算法源码

以下是 JavaScript 代码的详细中文注释和逻辑讲解


JavaScript 代码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline"); // 引入 readline 模块,用于读取控制台输入// 创建 readline 接口
const rl = readline.createInterface({input: process.stdin,  // 输入流为标准输入output: process.stdout, // 输出流为标准输出
});// 监听 'line' 事件,当用户输入一行内容时触发
rl.on("line", (line) => {// 将输入行按空格分割成数组const [str, idx] = line.split(" ");// 将字符串 str 转换为字符数组,排序后获取第 idx - 1 个字符const ele = [...str].sort()[idx - 1];// 输出该字符在原字符串 str 中的索引位置console.log(str.indexOf(ele));
});

代码逻辑讲解

1. 输入处理
  • 使用 readline 模块读取控制台输入。
  • 监听 line 事件,当用户输入一行内容时触发回调函数。
  • 将输入行按空格分割成数组 [str, idx]
    • str 是输入的字符串。
    • idx 是输入的索引值(字符串形式)。
2. 排序并获取指定字符
  • 将字符串 str 转换为字符数组:
    • 使用扩展运算符 ... 将字符串拆分为字符数组。
    • 例如,"hello" 转换为 ["h", "e", "l", "l", "o"]
  • 对字符数组进行排序:
    • 使用 sort() 方法按字典序排序。
    • 例如,["h", "e", "l", "l", "o"] 排序后为 ["e", "h", "l", "l", "o"]
  • 获取排序后的第 idx - 1 个字符:
    • 由于数组索引从 0 开始,所以需要 idx - 1
    • 例如,idx = 2,则获取 ["e", "h", "l", "l", "o"][1],即 "h"
3. 查找字符在原字符串中的索引
  • 使用 indexOf() 方法查找字符 ele 在原字符串 str 中的索引位置。
    • 例如,str = "hello"ele = "h",则 str.indexOf("h") 返回 0
4. 输出结果
  • 使用 console.log() 输出字符在原字符串中的索引位置。

代码细节解析

1. readline 模块
  • 用于逐行读取控制台输入。
  • createInterface() 方法创建一个接口对象,绑定输入流和输出流。
  • rl.on("line", callback) 监听用户输入,每次输入一行时触发回调函数。
2. split() 方法
  • 将字符串按空格分割成数组。
  • 例如,"hello 2" 分割为 ["hello", "2"]
3. ... 扩展运算符
  • 将字符串拆分为字符数组。
  • 例如,..."hello" 转换为 ["h", "e", "l", "l", "o"]
4. sort() 方法
  • 对数组按字典序排序。
  • 例如,["h", "e", "l", "l", "o"] 排序后为 ["e", "h", "l", "l", "o"]
5. indexOf() 方法
  • 返回字符在字符串中第一次出现的索引位置。
  • 如果字符不存在,返回 -1
  • 例如,"hello".indexOf("h") 返回 0

示例运行

输入
hello 2
步骤解析
  1. 输入字符串 "hello 2"
  2. 分割为 ["hello", "2"]
  3. "hello" 转换为字符数组 ["h", "e", "l", "l", "o"]
  4. 排序后为 ["e", "h", "l", "l", "o"]
  5. 获取第 2 - 1 = 1 个字符 "h"
  6. 查找 "h" 在原字符串 "hello" 中的索引位置 0
  7. 输出结果:0

总结

  • 功能:根据输入的字符串和索引值,找到排序后的指定字符在原字符串中的索引位置。
  • 适用场景:处理字符串排序和索引查找问题。
  • 注意事项
    • 如果输入的索引值超出范围(例如大于字符串长度),会导致 undefined 错误。
    • 如果字符在原字符串中不存在,indexOf() 返回 -1

如果有其他问题,欢迎随时提问!

三、Java算法源码

以下是 Java 代码的详细中文注释和逻辑讲解


Java 代码

import java.util.Arrays; // 导入 Arrays 工具类,用于数组排序
import java.util.Scanner; // 导入 Scanner 类,用于读取控制台输入public class Main {// 主方法,程序入口public static void main(String[] args) {Scanner sc = new Scanner(System.in); // 创建 Scanner 对象,用于读取输入String str = sc.next(); // 读取输入的字符串int idx = sc.nextInt(); // 读取输入的索引值System.out.println(getResult(str, idx)); // 调用 getResult 方法并输出结果}// 算法入口,计算排序后指定索引字符在原字符串中的位置public static int getResult(String str, int idx) {char[] sArr = str.toCharArray(); // 将字符串转换为字符数组Arrays.sort(sArr); // 对字符数组按字典序排序char target = sArr[idx - 1]; // 获取排序后的第 idx - 1 个字符return str.indexOf(target); // 返回该字符在原字符串中的索引位置}
}

代码逻辑讲解

1. 输入处理
  • 使用 Scanner 类读取控制台输入。
    • sc.next() 读取一个字符串(以空格或换行符分隔)。
    • sc.nextInt() 读取一个整数。
  • 例如,输入 "hello 2"
    • str = "hello"
    • idx = 2
2. 字符数组排序
  • 将字符串 str 转换为字符数组 sArr
    • 使用 toCharArray() 方法。
    • 例如,"hello" 转换为 ['h', 'e', 'l', 'l', 'o']
  • 对字符数组 sArr 进行排序:
    • 使用 Arrays.sort() 方法按字典序排序。
    • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
3. 获取目标字符
  • 从排序后的字符数组 sArr 中获取第 idx - 1 个字符:
    • 由于数组索引从 0 开始,所以需要 idx - 1
    • 例如,idx = 2,则获取 ['e', 'h', 'l', 'l', 'o'][1],即 'h'
4. 查找字符在原字符串中的索引
  • 使用 indexOf() 方法查找字符 target 在原字符串 str 中的索引位置。
    • 例如,str = "hello"target = 'h',则 str.indexOf('h') 返回 0
5. 输出结果
  • 使用 System.out.println() 输出字符在原字符串中的索引位置。

代码细节解析

1. Scanner
  • 用于读取控制台输入。
  • next() 方法读取一个字符串(以空格或换行符分隔)。
  • nextInt() 方法读取一个整数。
2. toCharArray() 方法
  • 将字符串转换为字符数组。
  • 例如,"hello" 转换为 ['h', 'e', 'l', 'l', 'o']
3. Arrays.sort() 方法
  • 对数组按字典序排序。
  • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
4. indexOf() 方法
  • 返回字符在字符串中第一次出现的索引位置。
  • 如果字符不存在,返回 -1
  • 例如,"hello".indexOf('h') 返回 0

示例运行

输入
hello 2
步骤解析
  1. 输入字符串 "hello 2"
  2. 读取 str = "hello"idx = 2
  3. "hello" 转换为字符数组 ['h', 'e', 'l', 'l', 'o']
  4. 排序后为 ['e', 'h', 'l', 'l', 'o']
  5. 获取第 2 - 1 = 1 个字符 'h'
  6. 查找 'h' 在原字符串 "hello" 中的索引位置 0
  7. 输出结果:0

总结

  • 功能:根据输入的字符串和索引值,找到排序后的指定字符在原字符串中的索引位置。
  • 适用场景:处理字符串排序和索引查找问题。
  • 注意事项
    • 如果输入的索引值超出范围(例如大于字符串长度),会导致数组越界异常。
    • 如果字符在原字符串中不存在,indexOf() 返回 -1

如果有其他问题,欢迎随时提问!

四、Python算法源码

以下是 Python 代码的详细中文注释和逻辑讲解


Python 代码

# 输入获取
s, i = input().split()  # 读取输入的一行内容,按空格分割为字符串 s 和索引 i# 算法入口
def getResult():sArr = list(s)  # 将字符串 s 转换为字符列表sArr.sort()  # 对字符列表按字典序排序tar = sArr[int(i) - 1]  # 获取排序后的第 int(i) - 1 个字符return s.find(tar)  # 返回该字符在原字符串 s 中的索引位置# 算法调用
print(getResult())  # 调用 getResult 方法并输出结果

代码逻辑讲解

1. 输入处理
  • 使用 input().split() 读取控制台输入的一行内容,并按空格分割为两个部分:
    • s:输入的字符串。
    • i:输入的索引值(字符串形式)。
  • 例如,输入 "hello 2"
    • s = "hello"
    • i = "2"
2. 字符列表排序
  • 将字符串 s 转换为字符列表 sArr
    • 使用 list(s) 方法。
    • 例如,"hello" 转换为 ['h', 'e', 'l', 'l', 'o']
  • 对字符列表 sArr 进行排序:
    • 使用 sort() 方法按字典序排序。
    • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
3. 获取目标字符
  • 从排序后的字符列表 sArr 中获取第 int(i) - 1 个字符:
    • 由于列表索引从 0 开始,所以需要 int(i) - 1
    • 例如,i = "2",则获取 ['e', 'h', 'l', 'l', 'o'][1],即 'h'
4. 查找字符在原字符串中的索引
  • 使用 find() 方法查找字符 tar 在原字符串 s 中的索引位置。
    • 例如,s = "hello"tar = 'h',则 s.find('h') 返回 0
5. 输出结果
  • 使用 print() 输出字符在原字符串中的索引位置。

代码细节解析

1. input().split()
  • 读取控制台输入的一行内容,并按空格分割为列表。
  • 例如,输入 "hello 2",分割为 ["hello", "2"]
2. list(s)
  • 将字符串转换为字符列表。
  • 例如,"hello" 转换为 ['h', 'e', 'l', 'l', 'o']
3. sort()
  • 对列表按字典序排序。
  • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
4. find()
  • 返回字符在字符串中第一次出现的索引位置。
  • 如果字符不存在,返回 -1
  • 例如,"hello".find('h') 返回 0

示例运行

输入
hello 2
步骤解析
  1. 输入字符串 "hello 2"
  2. 分割为 s = "hello"i = "2"
  3. "hello" 转换为字符列表 ['h', 'e', 'l', 'l', 'o']
  4. 排序后为 ['e', 'h', 'l', 'l', 'o']
  5. 获取第 2 - 1 = 1 个字符 'h'
  6. 查找 'h' 在原字符串 "hello" 中的索引位置 0
  7. 输出结果:0

总结

  • 功能:根据输入的字符串和索引值,找到排序后的指定字符在原字符串中的索引位置。
  • 适用场景:处理字符串排序和索引查找问题。
  • 注意事项
    • 如果输入的索引值超出范围(例如大于字符串长度),会导致列表越界异常。
    • 如果字符在原字符串中不存在,find() 返回 -1

如果有其他问题,欢迎随时提问!

五、C/C++算法源码:

以下是 C++ 代码的详细中文注释和逻辑讲解


C++ 代码

#include <iostream>  // 包含输入输出流库
#include <algorithm> // 包含算法库,用于排序
#include <string>    // 包含字符串库using namespace std; // 使用标准命名空间// 算法入口
int getResult(string s, int i) {// 将字符串 s 转换为字符数组char sArr[s.length()];for (int j = 0; j < s.length(); j++) {sArr[j] = s[j];}// 对字符数组按字典序排序sort(sArr, sArr + s.length());// 获取排序后的第 i - 1 个字符char tar = sArr[i - 1];// 返回该字符在原字符串 s 中的索引位置return s.find(tar);
}int main() {// 输入获取string s;int i;cin >> s >> i; // 读取输入的字符串和索引值// 算法调用cout << getResult(s, i) << endl; // 调用 getResult 方法并输出结果return 0;
}

代码逻辑讲解

1. 输入处理
  • 使用 cin 读取控制台输入:
    • cin >> s 读取一个字符串。
    • cin >> i 读取一个整数。
  • 例如,输入 "hello 2"
    • s = "hello"
    • i = 2
2. 字符数组排序
  • 将字符串 s 转换为字符数组 sArr
    • 使用循环将字符串的每个字符赋值给字符数组。
    • 例如,"hello" 转换为 ['h', 'e', 'l', 'l', 'o']
  • 对字符数组 sArr 进行排序:
    • 使用 sort() 函数按字典序排序。
    • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
3. 获取目标字符
  • 从排序后的字符数组 sArr 中获取第 i - 1 个字符:
    • 由于数组索引从 0 开始,所以需要 i - 1
    • 例如,i = 2,则获取 ['e', 'h', 'l', 'l', 'o'][1],即 'h'
4. 查找字符在原字符串中的索引
  • 使用 find() 方法查找字符 tar 在原字符串 s 中的索引位置。
    • 例如,s = "hello"tar = 'h',则 s.find('h') 返回 0
5. 输出结果
  • 使用 cout 输出字符在原字符串中的索引位置。

代码细节解析

1. cin
  • 用于读取控制台输入。
  • cin >> s 读取一个字符串(以空格或换行符分隔)。
  • cin >> i 读取一个整数。
2. 字符数组
  • 使用 char sArr[s.length()] 定义字符数组。
  • 使用循环将字符串的每个字符赋值给字符数组。
3. sort()
  • 对数组按字典序排序。
  • 例如,['h', 'e', 'l', 'l', 'o'] 排序后为 ['e', 'h', 'l', 'l', 'o']
4. find()
  • 返回字符在字符串中第一次出现的索引位置。
  • 如果字符不存在,返回 string::npos(通常为 -1)。
  • 例如,"hello".find('h') 返回 0

示例运行

输入
hello 2
步骤解析
  1. 输入字符串 "hello 2"
  2. 读取 s = "hello"i = 2
  3. "hello" 转换为字符数组 ['h', 'e', 'l', 'l', 'o']
  4. 排序后为 ['e', 'h', 'l', 'l', 'o']
  5. 获取第 2 - 1 = 1 个字符 'h'
  6. 查找 'h' 在原字符串 "hello" 中的索引位置 0
  7. 输出结果:0

总结

  • 功能:根据输入的字符串和索引值,找到排序后的指定字符在原字符串中的索引位置。
  • 适用场景:处理字符串排序和索引查找问题。
  • 注意事项
    • 如果输入的索引值超出范围(例如大于字符串长度),会导致数组越界异常。
    • 如果字符在原字符串中不存在,find() 返回 string::npos(通常为 -1)。

如果有其他问题,欢迎随时提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/795.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue sm3国密 IE模式报错处理

1、sm-crypto 转义错误 查看报错信息包名 在vue.config.js的transpileDependencies中把依赖包添加进去&#xff0c;让babel能够转译sm-crypto包 babel.config.js module.exports {presets: [[vue/app, {useBuiltIns: entry}]] }2、exports.destroy (() &#xff1e; { … }&a…

超燃预告!Origin百图绘制系列即将登场

Hello&#xff0c;大家好 这里是练习时长两年半的菜狗~ 持续更新各种竞赛&#xff0c;科研&#xff0c;保研&#xff0c;学习干货ing 回想刚开始打比赛那会&#xff0c;啥都不懂&#xff0c;就从用 Excel 画图起步&#xff0c;绘制的图形实在太难看。后来运用 Matlab&#xf…

burpsiute的基础使用(2)

爆破模块&#xff08;intruder&#xff09;&#xff1a; csrf请求伪造访问&#xff08;模拟攻击&#xff09;: 方法一&#xff1a; 通过burp将修改&#xff0c;删除等行为的数据包压缩成一个可访问链接&#xff0c;通过本地浏览器访问&#xff08;该浏览器用户处于登陆状态&a…

【日常小记】Ubuntu启动后无图形界面且网络配置消失

【日常小记】Ubuntu启动后无图形界面且网络配置消失 解决方法&#xff1a; 1. 输入后恢复网络: #sudo dhclient 2. 重新安装ubuntu-desktop #sudo apt-get install ubuntu-desktop&#xff01;&#xff01;&#xff01;请关注是否能ping通某网站&#xff08;例如百度&…

30天开发操作系统 第 12 天 -- 定时器 v1.0

前言 定时器(Timer)对于操作系统非常重要。它在原理上却很简单&#xff0c;只是每隔一段时间(比如0.01秒)就发送一个中断信号给CPU。幸亏有了定时器&#xff0c;CPU才不用辛苦地去计量时间。……如果没有定时器会怎么样呢?让我们想象一下吧。 假如CPU看不到定时器而仍想计量时…

010:传统计算机视觉之大津算法初探

本文为合集收录&#xff0c;欢迎查看合集/专栏链接进行全部合集的系统学习。 合集完整版请参考这里。 上一节学习了利用 Canny 算法来完成一个图片的边缘检测&#xff0c;从而可以区分出图像的边缘。 本节再了解一个计算机视觉中更常见的应用&#xff0c;那就是把图片的前景和…

Python中定位包含特定文本信息的元素

目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…

使用uniapp 微信小程序一些好用的插件分享

总结一下自己在开发中遇见的一问题&#xff0c;通过引入组件可以快速的解决 1.zxz-uni-data-select 下拉框选择器(添加下拉框检索&#xff0c;多选功能&#xff0c;多选搜索功能&#xff0c;自定义 下拉框插件&#xff0c;使用这个的原因是因为 uniui uview 组件库下拉框太…

sql server cdc漏扫数据

SQL Server的CDC指的是“变更数据捕获”&#xff08;Change Data Capture&#xff09;。这是SQL Server数据库提供的一项功能&#xff0c;能够跟踪并记录对数据库表中数据所做的更改。这些更改包括插入、更新和删除操作。CDC可以捕获这些变更的详细信息&#xff0c;并使这些信息…

Unreal Engine 5 (UE5) Metahuman 的头部材质

在图中&#xff0c;你展示了 Unreal Engine 5 (UE5) Metahuman 的头部材质部分&#xff0c;列出了头部材质的多个元素。以下是对每个部分的解释&#xff1a; 材质解释 Element 0 - MI_HeadSynthesized_Baked 作用&#xff1a; 这是 Metahuman 的主要头部材质&#xff0c;控制整…

springboot使用Easy Excel导出列表数据为Excel

springboot使用Easy Excel导出列表数据为Excel Easy Excel官网&#xff1a;https://easyexcel.opensource.alibaba.com/docs/current/quickstart/write 主要记录一下引入时候的pom&#xff0c;直接引入会依赖冲突 解决方法&#xff1a; <!-- 引入Easy Excel的依赖 -->&l…

SYS_OP_MAP_NONNULL NULL的等值比较

无意在数据库中发现了这个操作SYS_OP_MAP_NONNULL。 SYS_OP_MAP_NONNULL应该不是数据库中的对象&#xff0c;因为在DBA_OBJECTS中根本找不到它&#xff0c;而在STANDARD和DBMS_STANDARD包中也找不到函数说明。 SQL> SELECT * 2 FROM DBA_OBJECTS 3 WHERE OBJECT_NAME…

C语言---函数和数组实践:扫雷游戏

函数和数组实践&#xff1a;扫雷游戏 在这次的实践项目中&#xff0c;需要编写一个可以在在控制台运行的经典的扫雷游戏。 一、游戏要求 游戏有菜单&#xff0c;可以通过菜单实现继续玩或者退出游戏游戏要求棋盘9*9&#xff0c;雷&#xff08;10个&#xff09;要求随机布置可…

Web开发中页面出现乱码的解决(Java Web学习笔记:需在编译时用 -encoding utf-8)

目录 1 引言2 乱码表现、原因分析及解决2.1 乱码表现2.2 原因分析2.3 解决 3 总结 1 引言 Web开发的页面出现了乱码&#xff0c;一直不愿写出来&#xff0c;因为网上的解决方案太多了。但本文的所说的页面乱码问题&#xff0c;则是与网上的大多数解决方案不一样&#xff0c;使…

HarmonyOS:@LocalBuilder装饰器: 维持组件父子关系

一、前言 当开发者使用Builder做引用数据传递时&#xff0c;会考虑组件的父子关系&#xff0c;使用了bind(this)之后&#xff0c;组件的父子关系和状态管理的父子关系并不一致。为了解决组件的父子关系和状态管理的父子关系保持一致的问题&#xff0c;引入LocalBuilder装饰器。…

初学stm32 --- DAC输出三角波和正弦波

输出三角波实验简要&#xff1a; 1&#xff0c;功能描述 通过DAC1通道1(PA4)输出三角波&#xff0c;然后通过DS100示波器查看波形 2&#xff0c;关闭通道1触发(即自动) TEN1位置0 3&#xff0c;关闭输出缓冲 BOFF1位置1 4&#xff0c;使用12位右对齐模式 将数字量写入DAC_…

【opencv】第7章 图像变换

7.1 基 于OpenCV 的 边 缘 检 测 本节中&#xff0c;我们将一起学习OpenCV 中边缘检测的各种算子和滤波器——Canny 算子、Sobel 算 子 、Laplacian 算子以及Scharr 滤波器。 7.1.1 边缘检测的一般步骤 在具体介绍之前&#xff0c;先来一起看看边缘检测的一般步骤。 1.【第…

【Python】Python与C的区别

文章目录 语句结束符代码块表示变量声明函数定义注释格式Python的标识符数据输入input()函数数据输出print()函数 语句结束符 C 语言 C 语言中每条语句必须以分号;结束。例如&#xff0c;int a 10;、printf("Hello, World!");。分号是语句的一部分&#xff0c;用于…

web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理

web-app uniapp监测屏幕大小的变化对数组一行展示数据作相应处理 1.uni.getSystemInfoSync().screenWidth; 获取屏幕宽度 2.uni.onWindowResize&#xff08;&#xff09; 实时监测屏幕宽度变化 3.根据宽度的大小拿到每行要展示的数量itemsPerRow 4.为了确保样式能够根据 items…

Idea-离线安装SonarLint插件地址

地址&#xff1a; SonarQube for IDE - IntelliJ IDEs Plugin | Marketplace 选择Install Plugin from Disk..&#xff0c;选中下载好的插件&#xff0c;然后重启idea