怎么用java编程从字符串中取出连续相同的字符子串,并按从长到短顺序排列

如题所述

String s = "zbzazzzzzbbazzzbazzzazz";
Pattern p = Pattern.compile("(.)\\1*");
Matcher m = p.matcher(s);
List<String> result = new ArrayList<String>();
while(m.find()){
result.add(m.group());
}
Collections.sort(result, new Comparator<String>() {
public int compare(String arg0, String arg1) {
if(arg0.length()<arg1.length()){
return 1;
}else if (arg0.length()>arg1.length()){
return -1;
}
return 0;
}
});
System.out.println(result);追问

还要换行啊??师兄

温馨提示:内容为网友见解,仅供参考
无其他回答

java语言中编程求解两个字符串最长相同字符串的长度
1,以短的字符串为主。到长的字符串中去判断是否存在,如果存在,已找到。2,如果没有找到。将短的字符串的长度递减获取子串继续到长的串中查找。只要找到就结束。3,没有找到,说明没有相同的。\/ String s1 = "sadfcctvghjkl";String s2 = "zxcctvcv";String maxSub = getMaxSubString(s2,s1...

用JAVA编写一程序:从键盘输入多个字符串到程序中,并将它们按逆序输出在...
import java.util.Scanner;public class ScannerDemo{ public static void main(String[] args) throws Exception{ Scanner scan=new Scanner(System.in);System.out.println("请输入内容:");String str=scan.nextLine();char[] s=str.toCharArray();for(int i=s.length-1;i>=0;i--){ System...

java怎么获取字符串中指定的值?
在Java中获取字符串中指定的值可以使用以下几种方式:点击学习大厂名师精品课1.使用substring()方法可以使用String类提供的substring(intbeginIndex,intendIndex)方法,从原始字符串中截取出指定范围的字符子串。beginIndex表示截取的起始位置,endIndex表示结束位置(不包含)。2.使用StringUtils类可以使用ApacheCom...

java中怎么判断一个字符串中包含某个字符或字符串
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。4、...

java从读取的文本中 取出指定字符串
String line = null;\/\/定义一个空字符串来接受读到的字符串 String str="";\/\/循环把读取到的字符赋给str while((line = in.readLine())!=null){ str+=line;} System.out.println("str="+str);\/\/判断str中是否有EFG子串,为true则说明有。进去if语句 if(str.contains("EFG")){ System....

用java 正则表达式 计算一个字符串中某个子串的个数
public class RegexTest { public static void main(String args[]){ String str = "abcdfdfsabcdfdsf abc fdfdabcabc";\/\/1. 用这则表达式处理, 不过好像一点都不省事..Pattern p = Pattern.compile("abc",Pattern.CASE_INSENSITIVE);Matcher m = p.matcher(str);int count = 0;while(m....

java中怎么判断一个字符串中包含某个字符或字符串
java public static void main(String[] args) { String str = "ABC_001";if (str.indexOf("ABC") != -1) { 这表明字符串`str`中包含了子串"ABC",系统会输出"包含"。} else { 如果`indexOf()`返回-1,那么字符串`str`中不包含"ABC",系统会输出"不包含"。} } 通过这种方式,你...

java截取字符串:分别截取字符串str1和str2中的部分内容,如果截取后的...
忽略大小写的话,应该这样:if (substr1.equalsIgnoreCase(substr2)){ System.out.println("两个子串相同");}else{ System.out.println("两个子串并不相同");} zhou405680603说的对,字符串比较不能用=或者==,只能用equals或者equalsIgnoreCase ...

从键盘输入一个字符串,按从左向右顺序分解成连续字符组成的几个子串,并...
回答:你用的是什么语言? 我学的是java 你用一个字符串的函数subString把它分割打印出来就可以了

...一个字符串,统计一长度不超过2的子串在该字符串中出现的次数._百度...
string str, substr; cout<<"请输入字符串:"; cin>>str; cout<<"请输入要统计的字符段:"; cin>>substr; int num = 0; string::size_type pos = 0; while((pos = str.find(substr, pos))!= string::npos) { num++; ++pos; } cout <<"搜索的字符段出现次数为:"<< num << endl; return...

相似回答