废话不多说,直接上代码:
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
// 用一个集合存元素,方便去重
Set<String>set=new HashSet<>();
for(int i=1;i<=str.length();i++) {
f(i,set,str);
}
// 这里是测试代码,打印出来方便查看
for(String s:set) {
System.out.println(s);
}
System.out.println("总共有:"+set.size()+"种");
}
// 写一个方法,便于截取子串
private static void f(int index,Set<String> set,String str) {
String s="";
// 从长度为一到字符串的长度开始逐步截取,然后放入集合里面
for(int i=0;i<str.length()-index+1;i++) {
s=str.substring(i,i+index);
set.add(s);
}
}
}
本文介绍了一个Java程序,该程序通过使用HashSet实现字符串的所有可能子串的提取及去重,并统计不同子串的数量。文章提供的代码示例展示了如何遍历输入字符串并将其所有子串添加到集合中以确保每个子串只被记录一次。
1万+

被折叠的 条评论
为什么被折叠?



