0
我正试图在给定的输入句子中找到一个单词的anagrams。这是我运行程序时得到的异常。是否由于列表大小的变化?请帮我解决问题。ArrayList IndexOutOBoundsException从ArrayList中删除对象后
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 66, Size: 66
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at MyClass.main(MyClass.java:28)
这里是我的源代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class MyClass {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String wordin = sc.nextLine().toLowerCase();
sc.close();
List<String> word = new ArrayList<String>(Arrays.asList(wordin.split("\\s+"))); // splits the whole string into array of words
ArrayList<String> sorted = new ArrayList<String>();
int i,j;
for (i = 0; i < word.size(); i++) { // loop to sort letters of a particular word
word.set(i, word.get(i).replaceAll("[^\\w]", ""));
char[] ar = word.get(i).toCharArray();
Arrays.sort(ar);
sorted.add(String.valueOf(ar)); // add the sorted word to list
}
for(i=0;i<sorted.size();i++){
for(j=i;j<sorted.size();j++){
char[] ar = word.get(j).toCharArray();
Arrays.sort(ar);
String current = String.valueOf(ar);
if(current.equals(sorted.get(i))){
System.out.println(word.get(j));
word.remove(j);
}
}
}
}
}
什么是你的输入? – Tala
您发布的代码永远不会从列表中删除任何东西... –
这是我的输入: - 世界各地的部分地区在夏季接近24小时都有阳光。丹在夏天去北极领队探险。他头上戴着一根带子,以表明自己是领导者。 –