我需要打印一个包含重复单词的数组。我已经可以使用数组了,但是我无法弄清楚如何正确地计算单词数。我已经知道,当我的索引计数器(i)等于49,并且(i)想要计数到50时,我得到了错误,但是我不知道有任何其他方法可以调整我的方法。你能帮我么?任何帮助将不胜感激!
这是我的数组:
蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色蓝色棕色绿色绿色绿色绿色绿色绿色绿色绿色柠檬柠檬柠檬柠檬柠檬柠檬丁香淡紫色橙色橙色红色红色红色红色红色红色红色红色红色红色白色白色白色白色白色黄色黄色黄色
正确的代码
public static void printWordCount(String[] z)
{
System.out.println("THERE ARE " + wordTotal + " WORDS IN THE FILE");
System.out.println("WORD W/ COUNT:");
int i = 0;
int count = 0;
while(i < z.length - 1) {
if (z[i].equalsIgnoreCase(z[i+1])) {
i++;
count++;
}
else if (!z[i].equalsIgnoreCase(z[i+1]) || i == z.length - 1) {
count++;
System.out.println(z[i] + " / " + count);
i++;
count = 0;
}
}
count++;
System.out.println(z[i] + " / " + count);
}
这是我的输出:
文件中有50个字
字W / COUNT:
蓝色/ 13
棕色/ 1
绿色/ 8
柠檬/ 6
丁香/ 2
橙色/ 2
红色/ 10
白色/ 5
黄色/ 3
您的情况允许i
达到z.length - 1
。然后,z[i].equalsIgnoreCase(z[i+1])
将您带出数组界限i+1 == z.length
。
如果您希望将i
th元素与i+1
th元素进行比较,请将条件更改为:
while(i < z.length - 1)
那么您可能应该在循环之后添加:
count++;
System.out.println(z[i] + " / " + count);
打印最终单词出现的次数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句