package Test4;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
public class Test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
String text=input.nextLine();
HashMap<String, Integer> a=new HashMap<String, Integer>();
for(int i=1;i<=text.length();i++) {
for(int j=0;j<=text.length()-i;j++) {
a.put(text.substring(j,j+i),i);//将不同长度的字串(不重复)设为key,其长度为value
(value的值没什么用,主要利用key的值重复会覆盖,来减少判断是否字串会重复)
}
}
Set<String> jihe=a.keySet();
Iterator<String> it=jihe.iterator();
int []number=new int[text.length()+1];
//使用迭代器查找各个长度的key,number数组记录特定长度的字串个数
while(it.hasNext()) {
String b=it.next();
number[b.length()]++;
}
for(int i=0;i<text.length();i++) {
System.out.println("长度为:"+(i+1)+" "+number[i+1]+"个");
}
}
}
结果如下: