我想要做的是将String
的子字符串添加到ArrayList
。基本上将字符串中的每个字母添加到ArrayList
中的索引中。之后,我有一个打印声明只是为了看看这些字母是否被添加到ArrayList
(这是makearraylisOfChosenWord
下的第二个循环)。但是,当我使用或不使用打印语句运行时,它会给我一个NullPointerException
。是否因为我在第一个for循环中以错误的方式将字母添加到了ArrayList中? 感谢您的帮助 继承人的代码:NullPointerException从字符串添加子串到数组列表
String[] wordList = {"apple", "orange", "strawberry", "banana"};
String chosenWord;
//Make an array list to hold one letter of the chosen word at each index
void makeArrayListOfChosenWord(){
ArrayList<String> lettersOfChosenWord = new ArrayList<String>();
for (int i = 0; i < chosenWord.length(); i++) {
lettersOfChosenWord.add(chosenWord.substring(i, i+1));
}
for (int i = 0; i < lettersOfChosenWord.size(); i++) {
System.out.println((lettersOfChosenWord.get(i)).toString());
}
}
//Let the game pick a random word from the word list
void setRandomWord(){
int wordListLength = wordList.length;
int pickRandomWord = (int) (Math.random() * wordListLength);
String createRandomWord = wordList[pickRandomWord];
chosenWord = createRandomWord;
System.out.printf("the word is %s letters long", chosenWord.length());
}
这两种方法完全分开 - 它们是如何相关的?如果你能提供一个简短的但完整的程序来证明问题,那真的很有帮助。 –
实际上,setrandomword从单词列表中选择一个随机单词,如果你看,实例变量选择单词被赋予随机单词pick(它在setrandomword方法中,第4行),并且makearraylist方法使用选择的单词变量 –
啊,和你。第二种方法*绝对*在第一种方法之前调用?这是一个简短但完整的程序会清楚表明的事情。如果您要显示堆栈跟踪信息,以便知道发生异常的位置,也会有所帮助。 –