由于
public class ReverseWords {
public static void main(String [] args){
Scanner in = new Scanner(System.in);
System.out.print("Enter File Name: ");
String fileName = in.nextLine();
File f = new File(fileName);
try {
Scanner input = new Scanner(f);
int x = 1;
int n = input.nextInt();
while (x<n) {
String line = input.nextLine();
Queue<String> q = new LinkedList<String>();
q.add(line);
int ws = line.indexOf(" ");
String word = line.substring(0,ws);
ArrayList<String> a = new ArrayList<String>();
while (line.length() > 0) {
a.add(word);
q.remove(word);
}
System.out.println("Case #" + x);
for (int i = a.size(); i != 0; i--) {
System.out.print(a.get(i));
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
来自String
的Java文档:
public int indexOf(int ch)
...
如果此字符串中没有出现此类字符,则返回-1。
你准备好了没有空格吗?
例如,在最后一次迭代 ...
但看起来还有其他错误。
答案 1 :(得分:0)
您的问题将出现以下行:
int ws = line.indexOf(" ");
String word = line.substring(0,ws);
只要indexOf
找不到它要查找的内容,它就会返回-1。如果您尝试在字符串上使用该索引,那么您将在-1
的索引处超出范围。
看起来你正试图在一条没有空间的线上找到空间。