2つの文字列の中で最も長い同じサブ文字列を見つけます.
4473 ワード
//
public class Stringdemo {
public static void main(String[] args) {
String str1 = new String("eeabcde");
String str2 = new String("bcdefabcabcdedegg");
byte[] char1 = str1.getBytes();
byte[] char2 = str2.getBytes();
int len1 = char1.length;
int len2 = char2.length;
String maxchar=new String("");
StringBuffer temp = new StringBuffer(" ");
int maxl = 0;
int loops = 0;
for(int i=0;i<len1;i++)
for(int j=0;j<len2;j++){
int pos1 = i;
int pos2 = j;
int l = 0;
//temp = new StringBuffer("");
temp.delete(0, temp.length());
while(char1[pos1]==char2[pos2]) {
l++;
temp.append((char)char1[pos1]);
if (++pos1>len1-1) break;
if (++pos2>len2-1) break;
}
//System.out.println(""+(++loops)+":"+temp);
if (l>maxl) {
maxl = l;
maxchar = temp.toString();
}
}
System.out.println(""+maxl+" "+maxchar);
}
}