- class StringTest
- {
- public static String getMaxString(String s1,String s2)
- {
- String max ="" ,min ="";
- max = (s1.length() > s2.length())?s1:s2;
- min =(max==s1)?s2:s1;
- for (int x=0;x<min.length() ;x++ )
- {
- for (int y=0,z=min.length()-x ;z!=min.length()+1 ;y++,z++ )
- {
- String temp = min.substring(y,z);
- if(max.contains(temp)) //这是判断MAX中是否包含了temp
- //return temp;
- System.out.print(temp+"---");//结果为:hello---hell---ello---hel---ell---llo---ei---he---el---ll---lo---w---e---i---x---h---f---h---e---l---l---o---
- }
- }
- return "";
- }
- public static void main(String[] args)
- {
- String s1="weioxthellodskfjer";
- String s2="wqeixhf9hellocb";
- System.out.println(getMaxString(s1,s2));
- }
- }
复制代码 因为第一次temp=hello时return就跳出了循环所以就看不到包含的其他字符串
我用输出语句替换一下就可以看出是可以检测出来所有的包含的字符串
下面可以输出所有包含字符串的代码- class StringTest
- {
- public static void getMaxString(String s1,String s2)
- {
- String max ="" ,min ="";
- max = (s1.length() > s2.length())?s1:s2;
- min =(max==s1)?s2:s1;
- for (int x=0;x<min.length() ;x++ )
- {
- for (int y=0,z=min.length()-x ;z!=min.length()+1 ;y++,z++ )
- {
- String temp = min.substring(y,z);
- if(max.contains(temp)) //这是判断MAX中是否包含了temp
- //return temp;
- System.out.print(temp+"--");//打印所包含的的字符串
- }
- }
- }
- public static void main(String[] args)
- {
- String s1="weioxthellodskfjer";
- String s2="wqeixhf9hellocb";
- getMaxString(s1,s2);
- }
- }
复制代码 结果为:hello--hell--ello--hel--ell--llo--ei--he--el--ll--lo--w--e--i--x--h--f--h--e--l--l--o-- |