先生在这里,我试图检查是否有任何数字是否存在或不存在。如果存在任何数字,则会打印该数字。但是当我试图运行这个代码时,我面临着错误。请帮我解决这个错误。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