所以基本上,我创建了一个包含方法,它打印出正确的输出,我需要,但它确实在这之后它给了我一个错误:java.lang.ArrayIndexOutOfBoundsException错误在Java
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at MethodTesting.main(MethodTesting.java:90)
不知道为什么当它显示输出时无后顾之忧?如果任何人都可以给我一个我在做什么错的想法?我的代码在下面,我试着将长度调整为length和length-1,如下所示。我已经写了字符串代码,而不是字符数组,但它不会给我正确的结果。希望有人可以摆脱一些光?
//contains method
char[] st = "Hello World".toCharArray();
char[] substr = "llo".toCharArray();
for(int contains=0; contains<st.length-1; contains++){
if(substr[contains] == st[contains]){
for(int j=contains; j<st.length-1; j++){
if(st[j] == substr[j]){
}
else{
contains = -1;
}
}
}
System.out.println("CONTAINS");
System.out.println(contains);
}
谢谢,提前!
你究竟想要做什么? –
'if(substr [contains] == st [contains])'这一行导致问题。在你的例子中'substr'的大小为2,但'contains'索引可以大到10. –
看起来像通过设置contains = -1,行if(substr [contains] == st [contains])将会失败,因为它会尝试引用substr [-1] – vigneshre