本帖最后由 \(^o^)/ 于 2014-4-20 16:24 编辑
- /*
- 获取两个字符串中最大相同的子串,第一个动作,将短的那个串进行长度一次递减的子串打印。
- “asdfjhellolkjl”
- “adhellowl”
- 思路:
- 将短的那个子串去长串中判断是否包含,如果包含,已经找到了
- */
- class StringTest4
- {
- public static void main(String[] args)
- {
- String s1="asdfjhellolkjl";
- String s2="adhellowl";
- sop(getMaxSubString(s1,s2));
- }
- public static String getMaxSubString(String s1,String s2)
- {
- for(int x=0;x<s2.length();x++)
- {
- for(int y=0,z=s2.length()-x;z!=s2.length()+1;y++,z++)
- {
- String temp=s2.substring(y,z);
- //if(s1.contains(temp));
- if(s1.indexOf(temp)!=-1)
- return temp;
- }
- }
- return "";
- }
- public static void sop(String str)
- {
- System.out.println(str);
- }
- }
复制代码 在第二个循环里面为什么用//if(s1.contains(temp));就打印不出最长子串而是打印出所有的子串。而用if(s1.indexOf(temp)!=-1)就成功。
|
|