public class TextString3 {
/*
* 练习三 :两个字符串中最大相同的字符
* 思路 ; 1)既然要取最大的相同的字符,先看短的是否满足条件,大的包含了小的,则小的为所求
* 2)如果不是那,那么就将短的那个子串进行长度递减的方式进行判断是否包含于长的中;
* 3)如果存在就早到了,即可退出,
* */
public TextString3() {
// TODO Auto-generated constructor stub
}
String str2 = "rabcfd";// 短的
compare( str1,str2);
}
public static void compare (String str1,String str2){
String max;
String min;
System.out.println(getMaxEquairString( max, min));
max = str2;
System.out.println(getMaxEquairString( max, min));
}
}
private static String getMaxEquairString(String max, String min) {
// TODO Auto-generated method stub
for (int i = 0; i < min.length(); i++) {
for (int j = 0, z = min.length() - i; z < min.length() + 1; z++, j++) {
String t = min.substring(j, z);
if ((max).contains(t)) {
return min.substring(j, z);
}
}
}
return null;
}
}
/*
* 练习三 :两个字符串中最大相同的字符
* 思路 ; 1)既然要取最大的相同的字符,先看短的是否满足条件,大的包含了小的,则小的为所求
* 2)如果不是那,那么就将短的那个子串进行长度递减的方式进行判断是否包含于长的中;
* 3)如果存在就早到了,即可退出,
* */
public TextString3() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
String str2 = "rabcfd";// 短的
compare( str1,str2);
}
public static void compare (String str1,String str2){
String max;
String min;
if ( str1.length() > str2.length() ) {
max = str1;
min = str2;System.out.println(getMaxEquairString( max, min));
}
` if( str2.length() >= str1.length()){
min = str1;max = str2;
System.out.println(getMaxEquairString( max, min));
}
}
private static String getMaxEquairString(String max, String min) {
// TODO Auto-generated method stub
for (int i = 0; i < min.length(); i++) {
for (int j = 0, z = min.length() - i; z < min.length() + 1; z++, j++) {
String t = min.substring(j, z);
if ((max).contains(t)) {
return min.substring(j, z);
}
}
}
return null;
}
}