【发布时间】:2019-07-25 09:04:41
【问题描述】:
我对编程相当陌生,并且正在尝试设计一种方法来创建具有多个参数的方法。一个扫描器,一个单词的字符串数组,一个匹配单词数组的字符串数组,以及该单词的使用次数,以及一个整数,表示字符串数组中有多少单词。我的目标是逐个处理扫描仪中的单词,如果扫描仪中的单词也在单词数组中我想将一个单词添加到 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;
}
【问题讨论】:
-
请阅读minimal reproducible example 并相应地增强您的问题。当您的代码抛出 npe 时,就会出现需要修复的错误。除此之外:为什么要将这么多不同的方面放在一个方法中?开始慢!解决一项任务,广泛测试它。然后是下一个。然后,当所有部分都工作时,看看你可能想如何组合它们。另请注意,在两个不同的数组中使用“相同索引”“组合”两条信息在良好的 OOP 中是违反直觉的。考虑使用列表而不是数组,它们允许您简单地追加元素,而不是寻找空槽。
-
最后:不要一次做5个测试。编写专注于某一方面的小型测试,而不是进行许多这样的小型测试。
标签: java arrays junit java.util.scanner