java中求几个字符串的最大公共子串 使用了比较器…
2018-06-18 03:50:34来源:未知 阅读 ()
package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Max_Substring_Test { public static void main(String[] args) { /* * 几个字符串的最大公共子字符串 */ String str1 = "eriousdfndnfdlk"; String str2 = "dkgfdkgkdjgdjgjksjgksgjsdkjsdierioe"; String str3 = "ldskfjdskierundsnfjerioejrejrheruer3j43j4hj3"; String sub; List<String> list=new ArrayList<String>(); for (int i = 0; i < str1.length(); i++) { sub = str1.substring(0, i); if(str2.indexOf(sub)!=-1&&str3.indexOf(sub)!=-1) { // System.out.println(sub); list.add(sub); } } Collections.sort(list, new Comparator<String>() { @Override public int compare(String arg0, String arg1) { int i=arg1.length()-arg0.length(); return i; } }); System.out.println("The max subString is "+list.get(0)); } }
上面方法中测试的子串都是从第一个字母开始的,所以并不完全,子串还有很多,还有从第二个字母开始,从第三个字母开始,等等的子字符串
所以,还应该再加一层循环,把substring(开始参数,结束参数)中开始和结束参数都设置为变量,开始参数从0开始到最后一个字母下标,结束参数起始位置要根据开始参数而定,否则会出现下标异常
package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Max_Substring_Test { public static void main(String[] args) { /* * 几个字符串的最大公共子字符串 */ String str1 = "eriousdfndnfdlk"; String str2 = "dkgfdkgkdjgdjgjksjgksgjsdkjsdierioe"; String str3 = "ldskfjdskierundsnfjerioejrejrheruer3j43j4hj3"; String sub; List<String> list = new ArrayList<String>(); for (int i = 0; i < str1.length(); i++) { for (int j = i; j < str1.length(); j++) { System.out.println(sub = str1.substring(i, j+1)); if (str2.contains(sub)&& str3.contains(sub)) { System.out.println(sub); list.add(sub); } } } Collections.sort(list, new Comparator<String>() { @Override public int compare(String arg0, String arg1) { int i = arg1.length() - arg0.length(); return i; } }); System.out.println("The max subString is " + list.get(0)); } }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:K:二叉查找树(BST)
下一篇:Java—break跳出语句
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash