java_从键盘输入一个任意的字符串(如:aaabbababaaaababababa),统计该字符串中长度为i的子串出现次数(i从1开始到上述字符串长度结束)

package experiment5.exp3;
import java.util.*;
/*从键盘输入一个任意的字符串(如:aaabbababaaaababababa),统计该字符串中长度为i的子串出现次数(i从1开始到上述字符串长度结束)。提示:可使用HashMap实现。*/
public class SubString {
public static void main(String[] args) {
String line = new Scanner(System.in).nextLine();
/*自读取一次数据,可以用匿名的Scanner对象来读取数据,并直接将内容返回个line字符串*/
/*定义个统计次数的静态方法*/
count(line);
}
private static void count(String line) {
Map<String, Integer> map = new HashMap<>();
String tmp;
//System.out.println("枚举所有子串:(包括重复出现的)");
/*参看:https://blog.csdn.net/xuchaoxin1375/article/details/109545953*/
for (int i = 0; i < line.length(); i++) {
for (int j = i + 1; j <= line.length(); j++) {
if (!map.containsKey(tmp = line.substring(i, j))) {
map.put(tmp, 1);
} else {
map.put(tmp, map.get(tmp) + 1);
}
}
}
//可以根据需要建立列表list排序输出;
//System.out.println(map);
Set<String> set = map.keySet();
for (String x : set) {
System.out.println(x + "=" + map.get(x));
}
}
}
posted @   xuchaoxin1375  阅读(9)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2021-09-13 apple icon:view only?duplicate to your drafts to do edit
点击右上角即可分享
微信分享提示