因此,基本上,我创建了一个contains方法,并打印出所需的正确输出,但执行此操作后,出现错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at MethodTesting.main(MethodTesting.java:90)
不确定为什么在显示输出时没有后顾之忧?如果有人可以让我知道我在做什么错?我的代码如下,我尝试将长度调整为仅为length和length-1,如下所示。我用字符串而不是char数组编写了代码,但是它不会给我正确的结果。希望有人可以阐明一些想法?
//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);
}
提前致谢!
假设您要搜索字符串的子字符串,则可以在String.contains()
方法中完成。如果您尝试自己实现该方法,则必须像这样更改代码:
public static void main (String[] args)
{
char[] st = "Hello World".toCharArray();
char[] substr = "llo".toCharArray();
for(int contains = 0; contains < st.length - substr.length; contains++) {
int j;
for(j = 0; j < substr.length; j++) {
if(st[contains + j] != substr[j]) { // mismatch
break;
}
}
if (j == substr.length) // Every character in substr has been matched
System.out.println("Contains");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句