Java字串拆分

Java String split()方法用於根據提供的正則運算式將字串拆分為字串數組。

Java字串拆分

有時需要在Java中拆分String,例如:拆分CSV檔的數據以獲取所有不同的值。

String類提供了兩種拆分字串的方法。

1. public String[] split(String regex)方法

此方法用於根據給定的正則運算式字串拆分字串。整個字串被拆分並以字串數組的形式返回。此方法是在Java 1.4中引入的。請注意,尾隨的空字元串不包含在返回的字串數組中。下麵來看一個簡單的java字串拆分示例 -

String s = "abcaada";
System.out.println(Arrays.toString(s.split("a")));

上面的代碼將產生輸出為:[,bc,,d]。請注意,最後一個空字元串將從返回的字串數組中排除。

2. public String[] split(String regex, int limit)方法
當要將字串拆分為有限數量的字串時,可使用此java字串拆分方法。例如,假設有一個String變數,它包含逗號作為分隔符號的名稱和地址。地址中可以包含逗號。下麵給出了這個字串拆分的示例。

String s = "Haikou,Hainan,China";
String[] data = s.split(",", 2);
System.out.println("Name = "+data[0]); //Haikou
System.out.println("Address = "+data[1]); //Hainan,China

請注意,上面的第一種方法實際上通過limit參數使用0傳遞來使用第二種方法。

public String[] split(String regex) {
    return split(regex, 0);
}

Java的字串分割要點

關於java String split()方法的一些要點是:

  • 此方法返回的數組包含此字串的每個子字串,該子字串由與給定運算式匹配的另一個子字串終止,或者由字串的結尾終止。數組中的子串按它們在此字串中出現的順序排列。
  • 如果正則運算式與輸入字串的任何部分都不匹配,那麼結果數組只有一個元素,即該字串。
  • limit參數控制模式的應用次數,因此會影響結果數組的長度。如果限制n大於零,那麼模式將最多應用n-1次,數組的長度將不大於n,並且數組的最後一個條目將包含超出最後一個匹配分隔符號的所有輸入。
  • 如果n是非正數,那麼模式將被應用盡可能多的次數,並且數組可以具有任何長度。
  • 如果n為零,那麼模式將被應用盡可能多的次數,數組可以具有任何長度,並且將丟棄尾隨的空字元串。

Java String拆分示例
以下是java String split()方法的示例。

import java.util.Arrays;

public class JavaStringSplit {

    /**
     * Java String split example
     *
     * @param args
     */
    public static void main(String[] args) {
        String line = "Copyright of xuhuhu.com at 2099";

        String[] words = line.split(" ");

        String[] twoWords = line.split(" ", 2);

        System.out.println("String split with delimiter: " + Arrays.toString(words));

        System.out.println("String split into two: " + Arrays.toString(twoWords));

        // 用特殊字元分隔的拆分字串
        String wordsWithNumbers = "I|am|a|java|developer";

        String[] numbers = wordsWithNumbers.split("\\|");

        System.out.println("String split with special character: " + Arrays.toString(numbers));

    }
}

執行上面示例代碼,得到以下結果 -

String split with delimiter: [Copyright, of, xuhuhu.com, at, 2099]
String split into two: [Copyright, of xuhuhu.com at 2099]
String split with special character: [I, am, a, java, developer]

可以使用反斜杠將java正則運算式特殊字元用作普通字元,就像上面的程式中使用了管道(|)特殊字元一樣。


上一篇: java中方法重載和方法重寫的區別 下一篇:無