我想分割區號和前面的號碼從電話號碼沒有括號,所以我做到了這一點。爲什麼split()產生額外的,設置後限制-1
String pattern = "[\\(?=\\)]";
String b = "(079)25894029".trim();
String c[] = b.split(pattern,-1);
for (int a = 0; a < c.length; a++)
System.out.println("c[" + a + "]::->" + c[a] + "\nLength::->"+ c[a].length());
輸出:
c[0]::-> Length::->0
c[1]::->079 Length::->3
c[2]::->25894029 Length::->8
預期輸出:
c[0]::->079 Length::->3
c[1]::->25894029 Length::->8
所以我的問題是,爲什麼split()
產生,並在啓動額外的空白,e.g [, 079, 25894029]
。這是它的行爲,還是我在這裏做了一些錯誤?
如何獲得預期結果?
這種行爲,如果我沒記錯的話是不是在java8轉載 - 所以它是最有可能的一個漏洞(得到固定的)。 – amit
所以我怎麼能得到我對同樣的問題的預期結果? – Hiru
您可以(1)使用更新後的java8,或(2)如果第一個元素是空字符串,請修剪第一個元素。 (容易做一個單一的條件) – amit