有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将扫描器中的单词处理为字符串数组

我对编程相当陌生,正在尝试设计一种方法来创建一个具有多个参数的方法。一个扫描器,一个单词的字符串数组,一个匹配单词数组和单词使用次数的字符串数组,以及一个包含字符串数组中单词数量的整数。我的目标是逐个处理扫描器中的单词,如果扫描器中的单词也在单词数组中,我想将其添加到int数组中,如果单词不是单词数组,我想将其添加到数组上第一个空空间的单词数组中,并将其添加到与单词相同位置的int数组中。该方法的目标是在扫描仪中处理单词后返回单词数组中的单词数量。我的第一次尝试在上拉一个nullPointerException。等于()。 我的方法

public static int scanScanner(Scanner s,String[] words, int[] wordCount, int wordsInWordsArray) {
    for(int i = 0; i < words.length; i++) {
        String currentToken = s.next();
        if(words[i].equals(currentToken)) {
            wordScore[i]=+lineScore;
            wordCount[i]++;
        }
        else {
            words[wordsInWordsArray] = currentToken;
            wordScore[wordsInWordsArray]=+lineScore;
            wordCount[wordsInWordsArray]++;
            wordsInWordsArray++;
        }
    }
    return wordsInWordsArray;
    }

共 (1) 个答案

  1. # 1 楼答案

    有几件事:

    1. 外部循环应该迭代扫描程序中的单词,而不是数组中的单词。正如您现在所看到的,如果您碰巧以一个空数组开始,那么您的方法将什么也不做
    2. 您需要阵列的原因是什么?通常,您应该更喜欢java.util集合类而不是数组。他们将为您处理大小调整。在本例中,一个Map<String, Stats>似乎是一种方法,其中Stats将是您创建的一个包含计数和分数的类。如果分数只是计数的函数,那么你所需要的就是计数,并且可以使用Map<String, Integer>

    你在这方面的做法似乎过于复杂