String练习

来源:互联网 发布:cms 系统 小程序 编辑:程序博客网 时间:2024/06/05 16:45
目标:查找两个字符串中最大的公共子串

例String s1=“asdfg”; String s2=“asdx”

则最大公共子串为“asd”

思路:

1.以短的字符串为主,在长的字符串中判断是否存在,如果存在,已找到。
2.如果没有,将短的字符串长度递减获取子串继续道长的串中查找。
3.没有找到,说明没有相同的。

代码:

public class Stringtest3 {
public static void main(String[] args) {
// 两个字符串最大的子串;
// "asdfghjkzxcvb"
// "asdfghqwer"
String s1 = "asdfghjkzxcvb ";
String s2 = "asdfghqwer ";
String MaxSub=GetMaxSub(s1,s2);
System.out.println("MaxSub="+MaxSub);


}


private static String GetMaxSub(String s1, String s2) {
// TODO Auto-generated method stub
String longstr,shortstr;
longstr=(s1.length()>s2.length())?s1:s2;
shortstr=s1.equals(longstr)?s2:s1;
for (int i = 0; i < shortstr.length(); i++) {
for (int j = 0,z=shortstr.length()-i;z<=shortstr.length();j++,z++) {
String temp=shortstr.substring(j, z);
//System.out.println(temp);
if(longstr.contains(temp))
return temp;
}
}
return null;
}
}

0 0
原创粉丝点击