在扫描仪中处理单词到字符串数组



我是编程的新手,并试图设计一种具有多个参数的方法的方法。一个扫描仪,一个单词字符串数组,一个字符串数组与单词数组与使用的单词的使用数量以及字符串数组中有多少个单词的整数。我的目标是一个一个一个一个一个扫描仪中的单词,如果扫描仪中的单词也位于单词数组中,我想将一个单词添加到int数组中,如果一个单词不是单词数组,我想将其添加到阵列的第一个空空间中的单词数组在数组上的第一个空空间中,并在与单词同一位置的int数组中添加一个。该方法的目的是在处理扫描仪中的单词后返回单词数组中的几个单词。我的第一次尝试在.equals()上拉动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. 您的外循环应该迭代扫描仪中的单词,而不是数组中的单词。就像您现在拥有的那样,如果您碰巧从一个空数组开始,您的方法将无助。
  2. 您需要数组吗?通常,您应该更喜欢java.util收集类而不是数组。他们将为您处理调整大小。在这种情况下,Map<String, Stats>似乎是可以走的路,其中Stats将是您创建的类,其中包含计数和得分。如果分数仅仅是计数的函数,那么您所需要的就是计数,并且可以使用Map<String, Integer>

您的方法似乎不必要地复杂。