我正在尝试从控制台读取一个字符串,将其转换为 char 数组,然后计算每个 char
及其出现次数,然后将其放入一个新的 char 数组中。
public static void main(String... args) throws FileNotFoundException {
File words = new File("words.txt");
Scanner input = new Scanner(System.in);
Scanner fileInput = new Scanner(words);
System.out.println("Enter a word : ");
String word = input.nextLine().toLowerCase();
char[] wordCount = word.toCharArray();
char[] countedChars = new char[wordCount.length];
int[] counts = new int[countedChars.length];
for(int a=0; a<wordCount.length; a++) {
Character currentValue = wordCount[a];
int count = 1;
if(currentValue != null ) {
for(int j = a+1; j<wordCount.length; j++) {
if(wordCount[j] == currentValue) {
wordCount[j] = 0;
count++;
}
}
}
if(currentValue != 0) {
countedChars[a] = currentValue;
counts[a] = count;
}
}
事情是,当我创建 countedChars 数组时,我使用 wordCount.length 执行此操作,这使我在新数组中留有空白空间,以后我无法在程序中正确比较。如果所有字符只出现一次,就可以了,但如果不止一次我得到空插槽和这个带有单词的特定输出 - 游泳
s - 1
w - 1
i - 2
m - 2
- 0
- 0
n - 1
g - 1
我想使用数组,而不是数组列表或其他任何东西。谢谢您的时间!