我想要做的是将 String
中的子字符串添加到 ArrayList
中。基本上将字符串中的每个字母添加到 ArrayList 中的索引中。之后,我有一个 print 语句,只是为了查看字母是否已添加到 ArrayList 中(这是 makearraylisOfChosenWord 下的第二个 for 循环)。但是,当我在有或没有打印语句的情况下运行它时,它都会给我一个 NullPointerException 。是因为我在第一个 for 循环中以错误的方式将字母添加到数组列表中吗?
谢谢您的帮助
代码如下:
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());
}
最佳答案
我只是在考虑你的问题,并会尝试使用 ArrayList
的Character
而不是String
。在我看来,这是可以的,因为您提到您正在分割 String
成单Character
s,所以ArrayList<Character>()
似乎是一个合理的方法。
用于分割String
我会使用方法 toCharArray()
:
String str = "abcd...";
ArrayList<Character> chars = new ArrayList<Character>();
for (char c : str.toCharArray()) {
chars.add(c);
}
关于java - NullPointerException 将子字符串从字符串添加到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20502734/