【Java面試題】17 如何把一個逗號分隔的字符串轉換為數組? 關於String類中split方法的使用,超級詳細!!!


split 方法:將一個字符串分割為子字符串,然后將結果作為字符串數組返回。

stringObj.split([separator],[limit])
參數:stringObj   必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。
separator 可選項。字符串或 正則表達式 對象,它標識了分隔字符串時使用的是一個還是多個字符。如果忽

略該選項,返回包含整個字符串的單一元素數組。 limit可選項。該值用來限制返回數組中的元素個數

說明:split 方法的結果是一個字符串數組,在 stingObj 中每個出現 separator 的位置都要進行分解。separator 不作為任何數組元素的部分返回。

split 的實現直接調用的 matcher 類的 split 的方法。“ . ”在正則表達式中有特殊的含義,因此我們使用的時候必須進行轉義"\\."

如果用豎線“|”分隔的話,將出現不可得到的結果,必須改為“\\|”  

,+ * 不是有效的模式匹配規則表達式,用"//*"        "//+"轉義后即可得到正確的結果。

實例:

public class StrSplit2 {
    public static void main(String[] args) {
        String orgStr = "a,b,c,d,e,f";
        String[] result1 = orgStr.split(",");
        String[] result2 = orgStr.split(",", 4);

        for (int a = 0; a < result1.length; a++) {
            System.out.print(result1[a] + "\t");
        }
        System.out.println();
        for (int a = 0; a < result2.length; a++) {
            System.out.print(result2[a] + "\t");
        }

        System.out.println();
        String[] aa = "aaa|bbb|ccc".split("\\|"); // 這樣才能得到正確的結果
        for (int i = 0; i < aa.length; i++) {
            System.out.println(aa[i]);
        }
        
        System.out.println();
        String[] bb = "aaaa*bbbb*cccc".split("\\*"); // 這樣才能得到正確的結果
        for (int i = 0; i < bb.length; i++) {
            System.out.println(bb[i]);
        }

        String[] cc = "acount=? and uu =? or n=?".split("and|or"); // 這樣才能得到正確的結果
        for (int i = 0; i < cc.length; i++) {
            System.out.println(cc[i]);
        }

        String[] dd = "aaa\\bbb\\bccc".split("\\\\");
        for (int i = 0; i < dd.length; i++) {
            System.out.println(dd[i]);
        }

        System.out.println();
        String s = new String("01:大汽車");
        String a[] = s.split(":");
        System.out.println(a[0]);
        System.out.println(a[1]);

        System.out.println();

        String str = "1one123two456obc";
        String[] strs2 = str.split("o");
        for (int i = 0; i < strs2.length; i++)
            System.out.println("strs2[" + i + "] = " + strs2[i]);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。