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++;
System.out.println(res + " " + c + " i " + s);
}
输出自身重复的次数与字母重复的次数相同。知道为什么以及如何解决它吗?
当前输出示例:
输入一个字符串
你好,世界
输入字母
升
Hello world中的0 l
Hello world中的0 l
你好世界1公升
你好世界2公升
你好世界2公升
你好世界2公升
你好世界2公升
你好世界2公升
你好世界2公升
你好世界中3公升
你好世界中3公升
最佳答案
因为您的print语句存在于循环中,所以它将在每次执行循环时打印当前计数,这将为您提供多行/计数。将打印移到循环外将确保仅在解析整个字符串后才执行一次:
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);
}
关于java - 在尝试对图表进行计数时,输出重复自身的次数与插入字母的次数相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52128540/