📄 stringcompare.java
字号:
package com.ssl;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class StringCompare {
public StringCompare() {
}
public String getResult(String as, String bs) {
int alength = as.length(); //得到字符串a的长度
int blength = bs.length(); //得到字符串b的长度
int maxsublength; //最大的可能子字符串长度
//得到最大的可能子字符串长度
if(alength<blength){
maxsublength = alength;
}else{
maxsublength = blength;
}
int maxlength = 0;
int begin = 0;//最大子字符串的起点
int end = 0; //最大子字符串的终点
//搜索子字符串的长度从最大的可能子字符串长度开始,一直递减,搜索到最小的1为止
//当前的子字符串唯一为increase for (int increase = maxsublength;increase>0;increase--) {
//搜索每个子字符串的时候,a字符串从首位开始搜索,每个循环向前移动一格,到超出范围为止
for (int p = 0; p + increase < alength; p++) {
//取到字符串a中,以p为当前搜索首位,位移increase当前搜索的子字符串,
String asub = as.substring(p, p + increase);
System.out.println("asub----->"+asub);
//搜索每个子字符串的时候,b字符串从首位开始搜索,每个循环向前移动一格,到超出范围为止
for (int q = 0; q + increase < blength; q++) {
//取到字符串b中,以q为当前搜索首位,位移increase当前搜索的子字符串,
String bsub = bs.substring(q, q + increase);
System.out.println("bsub----->"+bsub);
//如果a的当前子字符串和b的子字符串相等,由于increase是从大至小搜索
//一旦发现,既是最大,这个字符串就是最大子字符串,返回结果
if (asub.equals(bsub)) {
if (increase > maxlength) {
maxlength = increase;
begin = q;
end = q + increase;
}
return bs.substring(begin,end);
}
}
}
}
System.out.println(maxlength);
System.out.println(bs.substring(begin,end));
return bs.substring(begin,end);
}
public static void main(String[] args) {
StringCompare stringcompare = new StringCompare();
//stringcompare.getResult("abccade","dgcadde");
System.out.println(stringcompare.getResult("abccade","dgcadde"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -