Java代码实现输入一段代码,当输入exit停止,统计这段代码中的各个关键词个数
时间: 2023-07-10 16:12:35 浏览: 125
Light_Java开关灯GUI代码_
可以使用Java中的Scanner类来实现输入代码,并利用Map来实现关键词的统计。具体实现步骤如下:
1. 定义一个字符串数组,存储需要统计的关键词。
2. 使用Scanner类从控制台读取用户输入的代码,当输入exit时停止。
3. 使用正则表达式匹配代码中的关键词,并将匹配到的关键词存储到Map中。
4. 循环读取代码,直到用户输入exit为止。
5. 遍历Map,统计每个关键词出现的次数。
以下是代码示例:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class KeywordCounter {
public static void main(String[] args) {
String[] keywords = {"public", "class", "static", "void", "main", "String", "int", "System", "out", "println"};
Map<String, Integer> keywordMap = new HashMap<>();
Scanner scanner = new Scanner(System.in);
String code = "";
while (!code.equals("exit")) {
code = scanner.nextLine();
for (String keyword : keywords) {
String regex = "\\b" + keyword + "\\b";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(code);
int count = 0;
while (matcher.find()) {
count++;
}
if (keywordMap.containsKey(keyword)) {
keywordMap.put(keyword, keywordMap.get(keyword) + count);
} else {
keywordMap.put(keyword, count);
}
}
}
for (Map.Entry<String, Integer> entry : keywordMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
```
运行程序后,用户可以输入任意多行代码,输入exit时程序统计关键词个数并输出结果。例如,输入以下代码:
```
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("a + b = " + (a + b));
}
}
exit
```
程序输出结果为:
```
public: 1
class: 1
static: 1
void: 1
main: 1
String: 1
int: 2
System: 1
out: 1
println: 1
```
阅读全文