我正在尝试创建一个方法,该方法可以找到列表中的每个唯一单词,并将它们添加到新列表中。我已经尝试了以下代码:
当我运行程序并输入“hi hi hi”时,我会收到以下错误信息:
我该如何解决这个错误?我的方法是否可行?
public static void countWords(){
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
String inText = JOptionPane.showInputDialog(null, "Type in text");
int start = 0;
for(int i = 0; i < inText.length(); i++) {
if(inText.charAt(i) == ' ') {
list1.add(inText.substring(start,i));
start = i;
}
}
for(int a = 0; a < list1.size(); a++) {
for(int j = 0; j < a; j++) {
if(list1.get(a) != list2.get(j)) {
list2.add(list2.get(a));
}
}
}
}
当我运行程序并输入“hi hi hi”时,我会收到以下错误信息:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at RäknaOrd.countWords(RäknaOrd.java:24)
at RäknaOrd.main(RäknaOrd.java:6)
我该如何解决这个错误?我的方法是否可行?
\\s+
(即空格)进行分割,然后使用List
的contains()
方法将单词添加到列表中。 - TheLostMind