如何查找两个字符串中是否有相同的部分 如何查找两个字符串中是否有相同的部分,比如说存在两个字符串Str1="abcdefg"Str2="bcde"那么他们相同的部门就包括b,c,d,e,bc,cd,de,bcd,cde,bcde请问这样代码要如何编写 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 lcs之,网上代码很多 abcdefg abfgbcd 会找出ab fg bcd 三对最长。 排列出 a b c d f g ab bc cd bcd fg 我给的例子可能给大家产生了误解,我这里解释一下:str1="abcdefd"str2="bcefd"那么相同的部分包括:b,c,e,f,d,bc,ef,fd,efd相同的部分是要包括所有有相同的部分,不是说最长公共子串,还有请给出具体的代码 import java.util.ArrayList;import java.util.List;public class Search { public static void main(String[] args) { String str1="abcdefg"; String str2="bcde"; //查找匹配的子串 List<String> list = search(str1, str2); //打印结果 for(String str : list) { System.out.print(str + " "); } System.out.println(); } /** * 查找str1和str2中相同的部分,其思路是在长度短的一个字符串中依次找长度为1,2,...,n的子字符串, * 然后再长度长的字符串中看是否包含此字符串,包含的话,就加入list,否则继续。最后返回list * @param str1 待查找的字符串 * @param str2 待查找的字符串 * @return 包含相同部分的list */ private static List<String> search(String str1, String str2) { String temp = ""; List<String> list = new ArrayList<String>(); //如果str1的长度小于str2的长度,则交换,方便后面的处理 if(str1.length() > str2.length()) { temp = str1; str1 = str2; str2 = temp; } for(int i=1; i<=str1.length(); i++) { for(int j=0; j<=str1.length()-i; j++) { temp = str1.substring(j, j+i); if(str2.contains(temp)) { list.add(temp); } } } return list; }} 这是最长公共子序列问题啊,我前几天刚写了一篇文章,就是关于这个的。看看吧,顺便帮我增添点人气,谢了!!http://blog.csdn.net/lxy15329/archive/2010/12/06/6058581.aspx ssh2事务配置管理 又遇空指针问题。。 关于java参数的问题 有创建目录的方式么?? 急啊~~我们的课程设计不知道怎么弄啊 请教各位啦~~感谢啊啊 求JAVA实现把汉字转化成拼音(给分贴,勿进) 紧急求助:为什么我的环境配置好后编译JAVA程序总是出现下列错误提示: 如何在jsp中调用远程的applet? 怎样实现server和client的数据传输 一个取数组宽度问题,请指教!!! 字母字符串穷举 求这个帖子的地址
网上代码很多
str1="abcdefd"
str2="bcefd"
那么相同的部分包括:b,c,e,f,d,bc,ef,fd,efd
相同的部分是要包括所有有相同的部分,不是说最长公共子串,还有请给出具体的代码
import java.util.ArrayList;
import java.util.List;
public class Search {
public static void main(String[] args) {
String str1="abcdefg";
String str2="bcde";
//查找匹配的子串
List<String> list = search(str1, str2);
//打印结果
for(String str : list) {
System.out.print(str + " ");
}
System.out.println();
}
/**
* 查找str1和str2中相同的部分,其思路是在长度短的一个字符串中依次找长度为1,2,...,n的子字符串,
* 然后再长度长的字符串中看是否包含此字符串,包含的话,就加入list,否则继续。最后返回list
* @param str1 待查找的字符串
* @param str2 待查找的字符串
* @return 包含相同部分的list
*/
private static List<String> search(String str1, String str2) {
String temp = "";
List<String> list = new ArrayList<String>();
//如果str1的长度小于str2的长度,则交换,方便后面的处理
if(str1.length() > str2.length()) {
temp = str1;
str1 = str2;
str2 = temp;
}
for(int i=1; i<=str1.length(); i++) {
for(int j=0; j<=str1.length()-i; j++) {
temp = str1.substring(j, j+i);
if(str2.contains(temp)) {
list.add(temp);
}
}
}
return list;
}
}
http://blog.csdn.net/lxy15329/archive/2010/12/06/6058581.aspx