String.split()遇到空字符串不解析的情況


1、split的api說明

stringObj.split([separator,[limit]]) 

stringObj:要被分解的 String 

separator:字符串或正則表達式對象

limit:參數控制模式應用的次數。當為正值:模式將被最多應用 n - 1 次。當負值:模式將被應用盡可能多的次數,

2、案例:空字符串不被解析

public class test {
    public static void main(String[] args) {
        String str = "1,2,3,4,,,";
        String[] arr = str.split(",");
        for (String string : arr) {
            System.out.println("str"+string);
        }
        System.out.println(arr.length);
    }
}

結果:

str1

str2

str3

str4

4

3、解決辦法

方法1:limit賦值成比該字符串被分隔成字符數組后數組的長度大很多的值,這能保證所有為空的都能被解析,

方法2:limit設置為非正,也能全部解析

public class test {
    public static void main(String[] args) {
        String str = "1,2,3,4,,,";
        String[] s = str.split(",",-1);
        for (String string : s) {
            System.out.println("str"+string);
        }
        System.out.println(s.length);
    }
}

輸出:

str1

str2

str3

str4

str

str

str

7

注意:

1、如果用“.”作為分隔的話,必須是如下寫法,String.split("\\."),這樣才能正確的分隔開,不能用String.split(".");
2、如果用“|”作為分隔的話,必須是如下寫法,String.split("\\|"),這樣才能正確的分隔開,不能用String.split("|");


免責聲明!

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



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM