package HomePlace;
import java.util.Scanner;
public class CountLetters {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = input.next();
word = word.toUpperCase();
int[] letterCount = new int[26];
for (int count = 0; count < word.length(); count++) {
char[] letters = word.toCharArray();
for (int count2 = 0; count2 < letters.length; count2++) {
char lett = letters[count2];
if ( (lett >= 'A') & (lett <= 'Z') ) {
letterCount[lett - 'A']++;
}
}
}
for (char count = 'A'; count <= 'Z'; count++) {
System.out.println(count + ": " + letterCount[count - 'A'] + " ");
}
System.out.println();
}
}
所以我得到了这个密码。。。 以及我想要的输出格式。 但不知何故,输出会计算字母的数量。 例如,如果我输入ABC,输出将是
A: 3
B: 3
C: 3
.
.
.
等等。 我希望输出计数每个出现的字母。 所以如果我把Abc它将是
A: 1
B: 1
C: 1
.
.
.
等等。 我在这里做错了代码的哪一部分?
首先,你使用的是POO语言,这意味着你必须使用函数。 如果你只是在寻找一个快速的解决方案,那么正确的代码应该是这样的:
package stck;
import java.util.Scanner;
public class CountLetters {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = input.next();
word = word.toUpperCase();
int[] letterCount = new int[26];
char[] letters = word.toCharArray();
for (int count2 = 0; count2 < letters.length; count2++) {
char lett = letters[count2];
if ( (lett >= 'A') && (lett <= 'Z') ) {
letterCount[lett - 'A']++;
}
}
for (char count = 'A'; count <= 'Z'; count++) {
System.out.println(count + ": " + letterCount[count - 'A'] + " ");
}
System.out.println();
}
}
这个循环没有用
for (int count = 0; count < word.length(); count++)
当你和环境一起工作时要小心
if ( (lett >= 'A') & (lett <= 'Z') ) {`