Java用string类取出两个字符串中相同的最长小串。

如题,例如strings1="fds123dfsghello";strings2="fdfjjhaski1hello"找出上面两个字符串中相同的字符串,并且是最长的。我的... 如题,例如string s1 = "fds123dfsghello"; string s2 ="fdfjjhaski1hello"
找出上面两个字符串中相同的字符串,并且是最长的。
我的思路是用for循环嵌套,string类的方法去做,但是不知道该怎么弄,求大师们帮帮我~~
展开
 我来答
匿名用户
2014-12-25
展开全部
import java.lang.Character.Subset;

/*
* 通过两个字符串数组,求其中最大相同项
*
* 思路:1.要是其中一个短的字符串包含在长的字符串中,直接输出这个短的即为所求
* 2.短的字符串要不是其最大相同项。就按照从多往少判断,这里面的具体就是从最大项
* 减一,用减一查出来有多少对数组进行向下判断。
*
* */

public class test1 {

/**
* @param args
*/
public static void main(String[] args) {
String s1 = "符串要不是其最大相同项。就按照从多往少判断,这里面的具体就是从最大项";
String s2 = "最大相同项";
String sub = Maxsubstring(s1, s2);
System.out.println("Maxsubstring:" + sub);
}

public static String Maxsubstring(String s1, String s2) {
String max = (s1.length() > s2.length()) ? s1 : s2;
String min = max.equals(s1) ? s2 : s1;
for (int i = 0; i < min.length(); i++) {
for (int m = 0, n = min.length() - i; n != min.length() + 1; m++, n++) {
// System.out.println(min.substring(m, n));
String sub = min.substring(m, n);
if (max.contains(sub)) {
return sub;
}
}

}

return null;
}
}
//可以改下你String,调试一下,往采纳
蜀中靓仔
2019-07-11 · TA获得超过609个赞
知道小有建树答主
回答量:517
采纳率:100%
帮助的人:97.9万
展开全部
public class StringTest {
public static void main(String[] args) {
String s1 = "adafafagafgagfdgsdfgsdfgsdfgsdf";
String s2 = "fgagfdgsadaf";
String maxSub = getMaxSubString(s1, s2);
System.out.println("比较的结果是:" + maxSub);
}

public static String getMaxSubString(String string1, String string2) {

String longStr, shortStr;

longStr = string1.length() > string2.length() ? string1 : string2;
shortStr = string1.equals(longStr) ? string2 : string1;

//System.out.println("long:" + longStr);
//System.out.println("short:" + shortStr);

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;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式