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