java基础—找出两个字符串中最大的子串
2015-06-18 15:06
716 查看
// 找一个字符串的最大子串 public static void main(String[] args) { String s1 = "qwerabcdtyuiop"; String s2 = "xcabcdvbn"; String stringMax = stringMax(s1, s2); System.out.println("最大的相同子字符串是:" + stringMax); } /** * 找出两个字符串中最大的相同子字符串 * * @param s1 * @param s2 * @return */ private static String stringMax(String s1, String s2) { // 记录相同子字符串 String sameString = null; // 比较两个字条串的长度,这里是设置S1的长度大于S2的长度 if (s1.length() < s2.length()) { // 如果s2的长度大,那么就将两个字符串进行替换 String temp = s1; s1 = s2; s2 = temp; } // 如果s2就被包含在s1中,那么这两个字符串最大的子串就是s2 boolean isContains = s1.contains(s2); if (isContains) { return s2; } else { boolean b1 = false; // 如果s2不是两个字符串最大的子类,那么再进行循环查找 for (int i = 0; i < s2.length(); i++) { for (int j = 0; j <= i; j++) { // 获取每次进行比较的子字条串 String str = s2.substring(j, s2.length() - i + j); System.out.println("第" + i + "次比较:" + str); if (s1.contains(str)) { sameString = str; b1 = true; break; } } // 如果比较到s2中最小的为2的时候还没有相同的字符串,我们就默认没相同的子字符串 if (s2.substring(0, s2.length() - i).length() == 2) { System.out.println("没有相同的子字符串"); b1 = true; break; } if (b1 == true) break; } } return sameString; }
编译运行:
分析原理图:
String字符串处理详细说明:点击打开查看
相关文章推荐
- 转载:struts2 中的 addActionError 、addFieldError、addActionMessage方法的区别
- struts2学习笔记一 基本配置及动态方法
- Java闲言碎语二三讲
- java 继承类与接口问题
- 使用eclipse怎样打开已有工程
- Java IO: 管道
- 【Java】使用Calendar类来获取当前的日期
- java.util.logging.Logger使用详解
- javax.swing.JList 设置分割线
- 【java设计模式】装饰者模式
- 对于java文件不能访问的情况分析
- 浅谈Java SE、Java EE、Java ME三者的区别
- java中如何对Double类型进行四舍五入操作
- Java基础--多线程2
- android ICS 通过eclipse编译后在bin目录下没有APK的解决办法
- eclipse 刷新属性视图
- Java IO流
- SimpleDateFormat在jdk不同版本的差异
- 我的Java开发学习之旅------>Java经典排序算法之插入排序
- JDK各个版本的新特性