【题目描述】:
一个字符串的非空子串是指字符串中长度至少为 1 的连续的一段字符组成
的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共 7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?
【代码演示】:
public class Main{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String string = input.next();
List<String> list = new ArrayList<String>();
for(int i=0;i<string.length();i++){
for(int j=1;j<=string.length();j++){
if(i+j<=string.length()){
int end = i+j;
String str1 = string.substring(i,end); //substring(int beginIndex,int endIndex) 从beginIndex到endIndex-1
if(list.indexOf(str1)==-1){ //判断list集合里面有没有重复的
list.add(str1);
}
}else{
break;
}
}
}
for(String str2:list){
System.out.println(str2);
}
System.out.print();
int count = list.size();
System.out.println(count);
}
}