Sample Code String str = "a,b,c,,"; String[] ary = str.split(","); // result 3 System.out.println(ary.length); 在 code review 的時候發現一個有趣的狀況, 在 split(",") 處理完, 預期結果應該是 5 , 然而實際上卻是 3 , 查了一下 API 發現 public String[] split(String regex) 要求的參數其實是 regrex express, 這有可能導致 IndexOutOfBoundException , 建議改為 public String[] split(String regex, int limit) limit 用來限制 array 的長度, 如果 limit > 0, 最終處理的 array 長度不會大於 limit, regex express 匹配的次數最多為 n - 1 次, 如果 limit 空字串 匹配的問題, 如果 limit = 0, regex express 會儘可能地處理匹配, 但會放棄處理 空字串 匹配的問題。 參考: API Doc Sample Code String str = "a,b,c,,"; String[] ary = str.split(",", -1); // result 5 System.out.println(ary.length);