我有以下問題:我想從用戶的字符串閱讀,到目前爲止,它工作得很好,但每次我按下只是「迴歸」我知道送花兒給人以下錯誤:Java命令行控制檯並切換
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)
at Shell.execute(Shell.java:20)
at Shell.main(Shell.java:55)
這將是代碼:
private static void execute(BufferedReader stdin) throws IOException {
boolean quit = false;
Field test = new Field();
while (!quit) {
System.out.print("ch> ");
String input = stdin.readLine();
if (input == null) {
break;
}
String[] tokens = input.trim().split("\\s+");
tokens[0].toLowerCase();
char tmp = tokens[0].charAt(0);
switch (tmp) {
case 'n':
test.setPoints(null);
break;
case 'a':
test.add(new Point(Integer.parseInt(tokens[1]), Integer
.parseInt(tokens[2])));
break;
case 'r':
test.remove(new Point(Integer.parseInt(tokens[1]), Integer
.parseInt(tokens[2])));
break;
case 'p':
System.out.println(test);
break;
case 'c':
System.out.println(test.convexHull());
break;
case 'h':
System.out.println("");
break;
case 'q':
quit = true;
break;
default:
break;
}
}
}
感謝您的幫助。
另請注意,'tokens [0] .toLowerCase()'實際上並不做任何事情。字符串在Java中是不變的,所以你不能修改它們。您需要存儲該方法的結果,例如'tokens [0] = token [0] .toLowerCase()'。 –