-4
這是我的代碼異常在線程 「主」 java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:-18
import java.util.Scanner;
import java.io.*;
class Main {
public static void main (String[] args)throws IOException {
Scanner scan = new Scanner(System.in);
System.out.println ("Enter message board post:");
String username = scan.nextLine();
String check = username.substring (username.indexOf(" ")+3 , username.length()).toLowerCase()+" ";
int a = check.indexOf(" ^^ ");
int b = check.indexOf (" qey ");
int c = check.indexOf (" $ ");
String first = username.substring (0 , username.indexOf(" "));
int x = 0;
int y =0;
int z = 0;
while (a != -1) {
x++;
check = check.substring(a+1, check.length());
a = check.indexOf(" ^^ "); }
while (b != -1) {
y++;
check = check.substring(b+1, check.length());
b = check.indexOf(" qey "); }
while (c != -1) {
z++;
check = check.substring(c+1, check.length());
c = check.indexOf (" $ "); }
if (x > 0 || y > 0 || z > 0){
System.out.println ("");
System.out.println ("BAD");
System.out.println (first);
System.out.println ("^^: " +x);
System.out.println ("qey: " +y);
System.out.println ("$: " +z);
}else {
System.out.println ("");
System.out.println ("CLEAN");
}
}
}
在端部的結果是:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -18
at java.lang.String.substring(String.java:1967)
at Main.main(Main.java:23)
哪些部分我必須改變擺脫線程? 我輸入B0rg - 抵抗是徒勞的QeY哈哈哈哈$$$ ^^
,它應該顯示爲
BAD
B0rg
^^: 1
qey:1 $:0
但它顯示了作爲例外。 ..請幫我...
[爲什麼「有人可以幫助我?」不是一個真正的問題?](https://meta.stackoverflow.com/q/284236/5221149)--- [什麼是調試器,它如何幫助我診斷問題?](https://stackoverflow.com/q/25385173/5221149) – Andreas
也許你應該在'a'循環之後執行'int b = check.indexOf(「qey」);'**,因爲'a'循環修改'check'。此外,**修復您的縮進**,因爲他們目前使代碼非常難以閱讀。 – Andreas
對於它的價值,這似乎是來自AP計算機科學課程(edhesive)的任務,所以這是一個初學者問。 –