3、查询一个字符串最长的字串,要求字串中的每个字符都一样
package com.softeem.homework2;
import java.util.ArrayList;
import java.util.Scanner;
public class Test3_2 {
public static void main(String[] args) {
//实例化一个输入类对象
Scanner in = new Scanner(System.in);
//提示用户输入一个字符串
System.out.print("请输入一个字符串:");
String str = in.next();
//创建集合保存子串
ArrayList<String> lists = new ArrayList<String>();
for (int i = 0; i < str.length(); i++) {
for (int j = i; j < str.length(); j++) {
//后面的字符与前面的不同,保存子串
if(!str.substring(i,i+1).equals(str.substring(j, j+1))){
lists.add(str.substring(i, j));
i = j-1; //-1是为了抵消i++
break;
}
//保存最后一个子串
if(j == str.length()-1 && str.substring(i,i+1).equals(str.substring(j, j+1))){
lists.add(str.substring(i, j+1));
i = j;
break;
}
}
}
//显示所有子串
for (String s : lists) {
System.out.print(s+" ");
}
//找出子串中最长的子串下标
int index = 0;
for (int i = 0; i < lists.size(); i++) {
if(lists.get(index).length() < lists.get(i).length()){
index = i;
}
}
System.out.println("\n最长子串为:"+lists.get(index));
}
}