美文网首页Java Learning
split的坑-字符串分割

split的坑-字符串分割

作者: 贺贺v5 | 来源:发表于2016-10-21 10:29 被阅读115次

    昨天在调代码的时候,遇到了一个很大的坑儿,让我不得不记录下来,莫非是我写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 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

    相关文章

      网友评论

        本文标题:split的坑-字符串分割

        本文链接:https://www.haomeiwen.com/subject/jpwquttx.html