用java从字符串如(aaaabbbssa)中取出连续相同的字符子串,并按从长到短排序
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class MatcherDemo { public static void main(String[] args) { String[] strings = matcher("11122333344333"); for (int i = 0; i < strings.length; i++) { System.out.println(strings[i]); } } public static String[] matcher(String input) { List<String> list = new ArrayList<String>(); Pattern pattern = Pattern.compile("(.)\\1*"); Matcher matcher = pattern.matcher(input); while (matcher.find()) { list.add(matcher.group()); } Collections.sort(list, new Comparator<String>() { public int compare(String o1, String o2) { return o2.length() - o1.length(); } }); return list.toArray(new String[0]); } }