- public static String ziChuan(String str,String st)
- {
- String max,min;
- max=(str.length()>st.length())?str:st;//比较两个字符串的长短,用max来存储长的字符串
- min=(max.equals(str))?st:str;//确定长的字符串之后,另一个是短的
- for(int x=0;x<min.length();x++)
- //外圈控制比几次,但总次数不能超过短字符串的总长度.
- {
- for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++)
- //y=每次比较时,取字符串的起始位置.
- //z=每次比较时,取字符串的结束位置.
- //意思是每一轮外圈循环,内圈都从短字符串里,取一个固定长度的子字符串,用来跟长字符串比较.
- //minlength()-x,意思是外圈每循环一轮,x会+1,这样用来比较的字符串长度也就减少了一位.
- //内圈循环每比较一次,起始位置后移一位,结束位置也后移一位,直到结束位置等于短字符串的最大长度+1位置.
- //因为要取来比较的子字符串长度固定.超过就取不了了.
- {
- if(max.indexOf(min.substring(y,z))!=-1)//用从短的字符串里取出来的子字符串跟长字符串比较,如果不等于-1,表示已经有匹配了,
- return min.substring(y,z);//返回匹配的那个子字符串.
- }
- }
- return " ";
复制代码
|