public static int IsMatch(String s,String p)
{
int i=0;
int j=0;
char[]s1=s.toCharArray();//主串
char[]p1=p.toCharArray();//子串
for(j=0;j for(i=0;i if(s1[i]==p1[j]) { i++; break; } else { j=0; } } } return i; } public static void main (String args[]) { String a= "ABCDEFG"; String b="EF"; System.out.println("位置是:"+IsMatch(a,b)); } 为什么出不来答案呀,java小白 求大神解答 你的算法完全不正确,当i,j都是0时,若if(s1[i]==p1[j]) 不成立,直接重新赋j=0;死循环了 我改的你参考下 public static int IsMatch(String s,String p)
{
int i=0;
int j=0;
int k=0;
char[]s1=s.toCharArray();//主串
char[]p1=p.toCharArray();//子串
for(i=0; i
while(k
j++;
}
if(k>=p1.length) {
return i;
}
k=0;
}
return -1;
}
下一篇:鲁大师硬件测评怎么看?