计数时,数组超出范围[正确]

布劳略

我需要打印一个包含重复单词的数组。我已经可以使用数组了,但是我无法弄清楚如何正确地计算单词数。我已经知道,当我的索引计数器(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

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

while(i < z.length - 1) 

那么您可能应该在循环之后添加

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数组超出范围

来自分类Dev

当数据源数组正确时,UICollectionView 中出现“索引超出范围”错误

来自分类Dev

将元素插入数组时,数组索引超出范围

来自分类Dev

数组超出范围-Swift

来自分类Dev

数组超出范围错误

来自分类Dev

数组索引超出范围

来自分类Dev

数组索引超出范围

来自分类Dev

数组超出范围错误

来自分类Dev

当数组不为空时使索引超出范围

来自分类Dev

访问数组SwiftUI时使索引超出范围异常

来自分类Dev

使用“。”时,数组索引超出范围错误。

来自分类Dev

SWIFT:计算tableView的numberOfRowsInSection时,数组索引超出范围

来自分类Dev

仅当满足超出范围的条件时才对范围内的值进行计数

来自分类Dev

Java数组索引超出范围4

来自分类Dev

java数组索引超出范围

来自分类Dev

UICollectionView数组索引超出范围

来自分类Dev

Mergesort数组索引超出范围异常

来自分类Dev

Java处理数组索引超出范围

来自分类Dev

下标超出范围VBA Excel数组

来自分类Dev

减少数组超出范围

来自分类Dev

元音检查-数组超出范围错误

来自分类Dev

数组索引超出范围-Java

来自分类Dev

数组索引超出范围异常

来自分类Dev

通用数组索引超出范围

来自分类Dev

下标超出范围,数组变量

来自分类Dev

数组元素超出范围指的是哪里?

来自分类Dev

工作表数组下标超出范围

来自分类Dev

致命错误数组索引超出范围

来自分类Dev

PostgreSQL:错误:数组下标超出范围