查找两个字符传中最大的相同字符串
2013-10-28 14:18
267 查看
package com.hello; import java.util.ArrayList; import java.util.HashSet; import java.util.Set;
/* * @author 张春蕾 2013年10月8 */
public class HelloJava{ public static Set<String> getSet(String s1,String s2){ ArrayList<String> arr1 = new ArrayList<String>();//用于存放字符串1所截取的所有字符串 ArrayList<String> arr2 = new ArrayList<String>();//用于存放字符串2所截取的所有字符串 Set<String> sets = new HashSet<String>();//用于存放两个字符串都含有的字符串 if(s1 != null &&s2 !=null ){ for(int i=0;i<s1.length();i++){//遍历循环字符串1,对字符串1所有的子字符串进行截取 for(int j=i;j<s1.length();j++){ arr1.add(s1.substring(i,j)); } } for(int i=0;i<s2.length();i++){//遍历循环字符串2,对字符串2所有的子字符串进行截取 for(int j=i;j<s2.length();j++){ arr2.add(s2.substring(i, j)); } } for(String s3 : arr1){//循环遍历找出两个字符串都含有的子串存入Set容器 if(arr2.contains(s3)){ sets.add(s3); } } } return sets; } public static void main(String[] args){ String s1 = "abcdffffvvvvgssss"; String s2 = "abcgffffvvddddssskkk"; Set<String> set= getSet(s1,s2); String maxString = ""; int maxLength = 0; for(String s3 : set){//循环遍历Set容器,找出最大的子字符串 if(maxLength <=s3.length()){ maxString = s3; maxLength = s3.length(); } } System.out.print(maxString); } }
输出结果为:ffffvv
相关文章推荐
- 如何在安卓虚拟机中安装本地的apk
- JAVA中ssh常用的一些库
- windows linux 文件传输
- thinkphp框架起步认识
- win8 VB6打开提示MSCOMCTL.ocx未注册
- lighttpd 1.4.33 版本 编译问题
- 0和1的故事
- Android的init过程(二):初始化语言(init.rc)解析
- NSNumber,NSValue和NSData
- C#中ToString格式大全
- 无线传感网络笔迹
- Servlet过滤器
- keepalived程序包
- Android 之 SimpleCursorAdapter
- 10款最新流行的 jQuery 插件,值得你收藏
- SQL Server 2005 常用数据类型详解
- Java简单加解密
- java 解压缩文件
- list标准函数的模拟
- unsafe_unretained