您的位置:首页 > 编程语言 > Java开发

java找出最长的子字符串

2017-11-06 10:37 162 查看
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class MaxChildString {
public static void main(String[] args) {
Scanner sc =  new Scanner(System.in);
//输入第一个字符串
String str1 =sc.nextLine();
//输入第二个字符串
String str2 =sc.nextLine();
//声明对象调用方法
MaxChildString mcs = new MaxChildString();
mcs.getMaxString(str1,str2);
}
public String getMaxString(String s1,String s2){
//声明List对象
List<String> list = new ArrayList<>();
//定义max为较长的字符串
String max = (s1.length()>s2.length())?s1:s2;
//定义min为较短的字符串
String min = (max.equals(s1))?s2:s1;
//定义初始头索引为0,尾索引一次减少
for (int i = 0; i < min.length(); i++) {
for (int begin = 0; begin < min.length()-i; begin++) {
int end = min.length()-i;
if (end>0) {
//定义s为min的子字符串,依次与max字符串比较
String s = min.substring(begin, end);
if (max.contains(s)) {
//若有匹配字符串,添加到list中
list.add(s);
}
}
}
}
//将list中的字符串根据字符串长度从大到小排序
for (int i = 0; i < list.size(); i++) {
for (int j = list.size()-1; j > i; j--) {
if(list.get(i).length()<list.get(j).length()){
String temp = list.get(i);
list.set(i,list.get(j));
list.set(j,temp);
}
}
}
//输出索引为0的字符串(这里没有考虑有多个最长长度子字符串的情况,大家有什么好办法吗)
System.out.println(list.get(0));
return null;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  子字符串