java——split的用法(字串拆分)

Princess$發表於2020-12-03

字串拆分

 public static void main(String[] args) {
        String str = "I Live In The Home";
        String[] ret = str.split(" ");
        for (String x : ret){
            System.out.println(x);
        }
        System.out.println("原來的字串為:" + str);
        //System.out.println(Arrays.toString(ret));
    }

輸出結果為:
在這裡插入圖片描述
從這裡可以看到,本程式碼是用空格拆分字串,但是最開始的字串不會因為字串的分割而改變(String定義的字串不會被修改)

注意:
這裡要引出一個概念:正規表示式
就比如下面的例子:

   public static void main(String[] args) {
        String str = "192.43.67";
        //想按照“.”來切分
        String[] result = str.split(".");
        for (String x : result){
            System.out.println(x);
        }
    }

以上程式碼沒有執行結果,也就是說split方法在str裡面沒有找到"."這個字元,我們知道,“.”在正規表示式中是一個特殊字元
,需要進行轉義才能識別出來。如下:

   String str = "192.43.67";
        //想按照“.”來切分
       //.在正規表示式中是一種特殊符號,為了讓split識別出源字串中的“.”,就需要進行轉意義“\\.”
        String[] result1 = str.split("\\.");
        for (String x : result){
            System.out.println(x);
        }

“\.” 裡面有兩個反斜槓,代表的兩個轉義,
一個是在java中進行轉義,一個是在正則中表示轉義

與之用法相同的符號有:“| + * ”

實際應用

 public static void main(String[] args) {
        //split的實際應用
        String string = "name=zhangsan&age=14&sex=male";
        //1.先按照&進行拆分
        String[] result = string.split("&");
        for (String tmp : result){
            //現在已經按照&拆分好了,開始進行=的拆分
            String[] ret = tmp.split("=");
            if (ret.length != 2){
                continue;
            }
            System.out.println(ret[0] + ": " + ret[1]);
        }
    }

相關文章