【发布时间】:2016-11-18 12:38:14
【问题描述】:
我正在尝试做这个程序
int contains(String s1, String s2):接收两个字符串,并且 检查 s2 是否区分大小写。如果 s2 在 s1 中,则返回最后一次出现的 s2 的索引,否则返回 -1。
这是一个例子
Enter first string: O pikap, su pikap, bu pikap.
Enter second string: pikap
22
Enter first string: O pikap, su pikap, bu pikap.
Enter second string: pikapcik
-1
我已经写了代码,但给了我这样的错误
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(Unknown Source)
at Test.main(Test.java:12)**
为什么会出现这样的错误,我该如何解决? 我只允许使用 charAt 和 length 方法
这里是代码
public static void main(String[] args){
String b1 = "O pikap, su pikap, bu pikap";
String a1 = "pikap";
String sum = "";
int b =b1.length();
int a =a1.length();
for( ; b>0 ; b--){
b = b - a;
for(int n = 0; n < a ; n++ , b++){
sum+= b1.charAt(b);
}
if(sum == a1)
break;
}//for 1
System.out.println(b-a+1);
}
【问题讨论】:
-
你可以通过不做
b1.charAt(-1)..来解决这个问题。 -
家庭作业提醒。
-
另请注意,字符串必须与
equals而不是==进行相等性检查