Java求字符串的所有連續子串

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進行測試
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章