Java 使字符串包含方法
我想做这个节目 int contains(字符串s1,字符串s2):接收两个字符串,并且 检查s2是否在s1情况下敏感。如果s2在s1中,则返回s2最后一次出现的索引,否则返回-1 这里有一个例子Java 使字符串包含方法,java,string,methods,Java,String,Methods,我想做这个节目 int contains(字符串s1,字符串s2):接收两个字符串,并且 检查s2是否在s1情况下敏感。如果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: pi
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)**
为什么会出现这样的错误,我该如何修复?
Im只允许使用字符和长度方法
这是密码
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);
}
publicstaticvoidmain(字符串[]args){
字符串b1=“O pikap,su pikap,bu pikap”;
字符串a1=“pikap”;
字符串sum=“”;
intb=b1.length();
int a=a1.length();
对于(;b>0;b--){
b=b-a;
对于(int n=0;n
因为循环中的每一次递减都会增加整个字符,然后会发生StringIndexOutOfBoundsException异常
检查以下b--和b++条件:
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
(;b>0;b--)的{
b=b-a;
对于(int n=0;n
Uhm。。在开始自定义对象之前,先读取字符串对象上的文档
String b1 = "O pikap, su pikap, bu pikap";
String a1 = "pikap";
System.out.println( b1.lastIndexOf(a1) );
如果你需要知道它是如何工作的
如果int b小于int a,则应停止循环。当int b在第一个循环中减少到4时,操作b的结果=b-a;表示b=-1,在第二个循环中它检查b1.charAt(-1),并且没有-1。字符串b1的索引。顺便说一句,您可以简单地使用str.lastIndexOf()。您可以通过不执行
b1.charAt(-1)来解决此问题
。家庭作业警报。请尝试查找或查看此网站上的其他数百个副本中的任何一个。还要注意,必须检查字符串是否与等于不=
相等。我不允许使用MethodOf索引。您在问题中没有提到,更新您的问题,说明您所面临的限制。