昨天在调代码的时候,遇到了一个很大的坑儿,让我不得不记录下来,莫非是我写js代码太久了的缘故?大概也许可能吧...
好了,让我们来看看这个坑儿吧,那就是字符串分割split
方法。这个方法无论是在Java code还是在js code中都是有这个方法的,但是用法,让我很难过。谁让我只是半吊子后端呢?
在js code 中可以这样使用:
> var test = "11^34#223^[111*34567]^,56";
> test.split("^");
< ["11", "34#223", "[111*34567]", ",56"]
也就是说,直接想要分割什么,直接写上就行。
在Java code 中如果也是直接这样写的话:
String[] signInfos = sign.split("^");
这样做的结果是不能将字符串进行分割的。结果如下图:
未能分割
查找资料后,得知,Java code 中的字符串分割之不能直接这样写的,必须添加转义符- \\(两个斜杠)。
> String address="上海^上海市@闵行区#吴中路";
> String[]splitAddress=address.split("\\^|@|#");
< 上海上海市闵行区吴中路
> 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"]
在这里稍微整理一下,Java code 中需要添加转移符的分割的字符。
然而像@或者,(逗号)这样的字符是不需要使用转义符的。
js split 使用