你的算法完全不正确,当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<s1.length; i++) { j=i; while(k<p1.length && s1[j]==p1[k]) { k++; j++; } if(k>=p1.length) { return i; } k=0; } return -1; }