1. 程式人生 > >[置頂] java與js的split方法

[置頂] java與js的split方法

最近在做專案時發現幾個問題
1、java與js的split方法的結果:
   使用java中的split()裡面的引數為正則表示式,但是對“,”也支援。對|或者$均需使用\\進行轉義。js不存在該問題。
2、java與js的split之後的陣列長度:
  定義一字串12$3$23$323.5$29
  這個時候在java和js中split之後長度一致,均為5.
  但是假如字串為12$3$23$323.5$29$
  這個時候java中,split之後長度為5,但是js就為6了。具體原因不明。

感謝 b_lee 的熱情回覆。
對java中split方法的後續補充。
java中的split方法有兩個:
    public String[] split(String regex,int limit),根據匹配給定的正則表示式來拆分此字串。 此方法返回的陣列包含此字串的每個子字串,這些子字串由另一個匹配給定的表示式的子字串終止或由字串結束來終止。陣列中的子字串按它們在此字串中的順序排列。如果表示式不匹配輸入的任何部分,則結果陣列只具有一個元素,即此字串。 limit 引數控制模式應用的次數,因此影響結果陣列的長度。如果該限制 n 大於 0,則模式將被最多應用 n - 1 次,陣列的長度將不會大於 n,而且陣列的最後項將包含超出最後匹配的定界符的所有輸入。如果 n 為非正,則模式將被應用盡可能多的次數,而且陣列可以是任意長度。如果 n 為零,則模式將被應用盡可能多的次數,陣列可有任何長度,並且結尾空字串將被丟棄。
    以及public String[] split(String regex)。根據給定的正則表示式的匹配來拆分此字串。 該方法的作用就像是使用給定的表示式和限制引數 0 來呼叫兩引數 split 方法。因此,結果陣列中不包括結尾空字串。
對於分隔引數,只要是符合正則表示式的。均可以。