Java求字符串的所有連續子串
例如 abcd 的連續子串像a、ab、abc、abcd、b、bc、bcd等,不考慮ac、ad、bd這樣不連續的
包含自身,直接輸出
public static void getAllSubstrings(String s){
for (int i = 0; i < s.length() ; i++) {
for (int j = i+1; j < s.length()+1 ; j++) { //使用<可以快一點點,不是很明顯
//for (int j = i+1; j <= s.length() ; j++) {
System.out.println(s.substring(i, j));
}
}
}
對abcde進行測試
包含自身,返回一個字符串集合
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> arrayList = getAllSubstrings("abcde");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
}
public static List<String> getAllSubstrings(String s){
List<String> arrayList = new ArrayList<String>();
for (int i = 0; i < s.length() ; i++) {
for (int j = i+1; j < s.length()+1 ; j++) {
arrayList.add(s.substring(i, j));
}
}
return arrayList;
}
}
對abcde進行測試
不包含自身,返回一個字符串集合
把字符串本身刪除就行
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> arrayList = getAllSubstrings("abcde");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
}
public static List<String> getAllSubstrings(String s){
List<String> arrayList = new ArrayList<String>();
for (int i = 0; i < s.length() ; i++) {
for (int j = i+1; j < s.length()+1 ; j++) {
arrayList.add(s.substring(i, j));
}
}
//刪除字符串s本身
arrayList.remove(s);
return arrayList;
}
}
對abcde進行測試