gpt4 book ai didi

java - 计数时数组越界[正确]

转载 作者:行者123 更新时间:2023-12-01 22:33:07 30 4
gpt4 key购买 nike

我需要打印一个包含重复单词的数组。我的数组已经可以工作,但我不知道如何正确计算单词数。我已经知道,当我的索引计数器 (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 个单词

字数:

蓝色/13

棕色/1

绿色/8

柠檬/6

紫丁香/2

橙色/2

红色/10

白色/5

黄色/3

最佳答案

您的条件允许i达到z.length - 1。然后,z[i].equalsIgnoreCase(z[i+1]) 会将您带出数组边界,因为 i+1 == z.length

如果您希望将第 i 个元素与第 i+1 个元素进行比较,请将条件更改为:

while(i < z.length - 1) 

那么你应该在循环之后添加:

        count++;
System.out.println(z[i] + " / " + count);

打印最终单词出现的次数。

关于java - 计数时数组越界[正确],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324596/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com