昨天在調代碼的時候,遇到了一個很大的坑兒,讓我不得不記錄下來,莫非是我寫js代碼太久了的緣故?大概也許可能吧...
好了,讓我們來看看這個坑兒吧,那就是字符串分割split
方法。這個方法無論是在Java code還是在js code中都是有這個方法的,但是用法,讓我很難過。誰讓我只是半吊子后端呢?
js code
在js code 中可以這樣使用:
> var test = "11^34#223^[111*34567]^,56";
> test.split("^");
< ["11", "34#223", "[111*34567]", ",56"]
也就是說,直接想要分割什么,直接寫上就行。
Java code
在Java code 中如果也是直接這樣寫的話:
String[] signInfos = sign.split("^");
這樣做的結果是不能將字符串進行分割的。結果如下圖:
未能分割
查找資料后,得知,Java code 中的字符串分割之不能直接這樣寫的,必須添加轉義符- \\(兩個斜杠)。
多個符號進行分割
- Java code
> String address="上海^上海市@閔行區#吳中路";
> String[]splitAddress=address.split("\\^|@|#");
< 上海上海市閔行區吳中路
- js code
> var test = "11^34#223^[111*34567]^,56";
// 一個字符 `#`
> test.split(/[#]/);
< ["11^34", "223^[111*34567]^,56"]
// 兩個字符 `*`、`#`
> test.split(/[*#]/);
< ["11^34", "223^[111", "34567]^,56"]
// 三個字符 `^`、`*`、`#`
// ^ 需要使用轉移符
> test.split(/[\^*#]/);
< ["11", "34", "223", "[111", "34567]", ",56"]
附加1
在這里稍微整理一下,Java code 中需要添加轉移符的分割的字符。
- |
- :
- .
- ^
然而像@或者,(逗號)這樣的字符是不需要使用轉義符的。
附加2
js split 使用
- 定義和用法
split() 方法用于把一個字符串分割成字符串數組。 - 語法
stringObject.split(separator,howmany) - 參數 描述
- separator 必需。字符串或正則表達式,從該參數指定的地方分割 stringObject。
- howmany 可選。該參數可指定返回的數組的最大長度。如果設置了該參數,返回的子串不會多于這個參數指定的數組。如果沒有設置該參數,整個字符串都會被分割,不考慮它的長度。