`
求两字符串公共子串的java实现
`public class totest{
public String getsubString(String s,int a,int b) {
String s1=new String();
if(s.length()
for(int i=0;i
s1=s1+s.charAt(a+i-1);
}
}else {
for(int i=0;i
s1=s1+s.charAt(a+i-1);
}
}
return s1;
}
public String getString (String s1,String s2) {
String s3=new String();
int array[][]=new int[s1.length()][s2.length()];
int maxlen=0;int maxend=0;
for(int i=0;i
for(int j=0;j
if(s1.charAt(i)==s2.charAt(j)) {
if(i==0||j==0) {
array[i][j]=1;
}else {
array[i][j]=array[i-1][j-1]+1;
}
}else {
array[i][j]=0;
}
if(array[i][j]>maxlen) {
maxlen=array[i][j];
maxend=i;
}
}
}
s3=getsubString(s1,maxend-maxlen+2,maxlen);
return s3;
}
public static void main(String args[]) {
Scanner scan=new Scanner(System.in);
totest test=new totest();
System.out.println("请输入字符串1");
String s=scan.next();
System.out.println("请输入字符串2");
String a=scan.next();
System.out.println("结果为:"+test.getString(s, a));
}
}
str.charAt[i]方法在定位时从0开始,所以求子串时会+1。
标签:子串,java,String,scan,System,totest,maxlen,字符串,out
来源: https://blog.csdn.net/qq_44428409/article/details/102755483