1. 程式人生 > >String類下split使用注意

String類下split使用注意

今天開發,遇到了一個比較意外的問題。

1、問題描述:

       String.split(”.”);//以點作為分隔符

      結果得到的陣列引用時,老報下標越界錯誤,後來測試也發現長度就是為零。

2、問題分析:

     開始時,懷疑此種分隔符是一種特殊的字元,莫非是要轉義。於是加了兩個斜槓,即:String.split(”//.”),測試通過。

   3、總結如下:

    1)、是點和|作為分隔符,出現此種錯誤,因為在在split(表示式)中,表示式其實是一個正則表示式,.和|是一種有特殊含義的字元,如果要使用此種字元作為分隔符,要使用轉義字元加以轉義方可得到正確結果。

   2)如果想要使用多個分隔符,可以使用|分隔開,比如使用 @和?作為分隔符,即為String.split(”@|?);

    3)使用String.split(””)時,往往容易忽略的一個地方就是分割的字元陣列中,示例:“a/b/c////”.split(”/”)的長度不是6,而是3,因為分割後,java中會從後面開始檢查所得的陣列,把空的去掉,返回非空的3個數組。


例:

輸入為asdf1   , 注意split裡面“//|”轉意

符號“.”,“|”,“$”是正則表示式特殊符號,要作轉義,包括還很多,不一一舉例!使用時注意!