先生在這裏,我試圖檢查是否有任何數字是否存在或不存在。如果存在任何數字,則會打印該數字。但是當我試圖運行這個代碼時,我面臨着錯誤。請幫我解決這個錯誤。Java String索引出界
我的代碼
import java.util.Scanner;
public class test1{
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int a = input.nextInt();
String arr[]= new String[a];
for(int i=0;i<a;i++){
arr[i]=input.next();
}
for(int i=0;i<a;i++){
String sub[] = arr[i].split("");
for(int j=0;j<sub.length;j++){
char x = arr[i].charAt(j);
if(Character.isDigit(x)){
System.out.println(x);
}
}
}
}
}
我收到此錯誤:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(String.java:686)
at test1.main(test1.java:13)
Java Result: 1
你可以幫我解決這個問題。
我不太瞭解java,但是'arr [i] = input.next();當你的循環到達它的結尾時,你的下一個輸入是不存在的。因此錯誤。雖然我不確定。 – PythonEnthusiast
是否可以用'「」分割給出額外的不需要的空白字符? –
@peeskillet - 這正是發生的事情。 split方法返回的數組中有一個額外的元素,它是空的,因此'charAt()'在該String中沒有遇到任何字符時拋出'StringIndexOutOfBoundsException'。 – SudoRahul