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));
} }

最新文章

  1. html小知识点汇总(浏览器导航上显示图标、div无高度时试着清除浮动、文字环绕图片、字体加粗、div按百分比分、已有的不合适的class,针对特定的标签进行修改)
  2. css 去除 a,checkbox 框 出现虚线
  3. python学习笔记 ——python写的猜数字游戏 002
  4. swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)
  5. android 使用两个surfaceview 在摄像机画面上绘图
  6. 【mysql的设计与优化专题(3)】字段类型与合理的选择字段类型
  7. SQL Server 中使用参数化Top语句
  8. TextView 使用自定义的字体和亮点
  9. CentOS7安装Hadoop2.7流程
  10. Spring AOP进行日志记录,管理
  11. Java 特殊字符的String.split的分割(. \ * | \\)
  12. linux小白成长之路8————访问Docker中的mysql
  13. app Inventor
  14. SQL Server中授予用户查看对象定义的权限
  15. Confluence 6 站点高级自定义
  16. echarts相关的可视化数据
  17. 跨站请求伪造CSRF(Cross-site request forgery)
  18. iOS开发-View中frame和bounds区别
  19. excel中如何让每n行显示同一个数据
  20. 洛谷P3919 【模板】可持久化数组 [主席树]

热门文章

  1. JAVA之动态编译
  2. JPA @MappedSuperclass注解的使用说明(转)
  3. VLAN-8-VTP配置
  4. Codeforces 185B(数学结论)
  5. 牛客网36-A,B题解
  6. 2017浙江工业大学-校赛决赛 BugZhu抽抽抽!!
  7. js中 前台日期时间使用方法总结
  8. Json规范
  9. Web可用性设计的247条指导方针
  10. Unity注入