2 回答
TA贡献1817条经验 获得超14个赞
如果您不跟踪代码,则不应将输出语句放入循环中:
int res = 0;
for (int i = 0; i < s.length(); i++)
{
if (s.charAt(i) == c)
res++;
}
System.out.print(res + " " + c + " in" + s);
TA贡献1807条经验 获得超9个赞
因为您的打印语句存在于循环中,所以每次执行循环时它都会打印当前计数,从而为您提供多行/计数。将打印移到循环之外将确保它只在整个字符串被解析后执行一次:
private static void CountLetters(Scanner sc) {
System.out.println("Enter a string");
String s = sc.nextLine();
System.out.println("Enter a letter");
char c = sc.nextLine().charAt(0);
int res = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == c)
res++;
}
// Moved print statement outside of the loop; changed "i" to "in".
System.out.println(res + " " + c + " in" + s);
}
添加回答
举报