这是题目编写程序统计一个输入的Java源码中关键字(区分大小写)出现的次数。说明如下: Java中共有53个关键字(自行百度) 从键盘输入一段源码,统计这段源码中出现的关键字的数量 注释中出现的关键字不用统计 字符串中出现的关键字不用统计 统计出的关键字及数量按照关键字升序进行排序输出 未输入源码则认为输入非法 输入格式: 输入Java源码字符串,可以一行或多行,以exit行作为结束标志 输出格式: 当未输入源码时,程序输出Wrong Format 当没有统计数据时,输出为空 当有统计数据时,关键字按照升序排列,每行输出一个关键字及数量,格式为数量\t关键字
时间: 2024-03-14 09:45:27 浏览: 71
感谢您提供更具体的信息。根据您提供的信息,我发现您的代码在判断多行注释的时候有问题。
您的代码中判断多行注释的条件是:`else if (i + 1 < str.length() && str.charAt(i + 1) == '')`,这里应该是判断下一个字符是否为星号`*`,但是您写成了空字符`''`。因此,程序无法正确判断多行注释的结束,导致后面的代码也无法正常执行。您可以修改为以下代码:
```
else if (i + 1 < str.length() && str.charAt(i + 1) == '*') { // 多行注释
inComment = true;
i++;
}
```
另外,您也可以将判断单行注释和多行注释的代码合并为一个条件判断,如下所示:
```
if (quoteCount % 2 == 0 && c == '/') {
if (i + 1 < str.length() && str.charAt(i + 1) == '/') { // 单行注释
break;
} else if (i + 1 < str.length() && str.charAt(i + 1) == '*') { // 多行注释
inComment = true;
i++;
}
}
```
这样可以让代码更简洁清晰。
阅读全文