【问题标题】:Why does single pipe character confuse java split method? [duplicate]为什么单管道字符会混淆java拆分方法? [复制]
【发布时间】:2013-09-17 16:09:01
【问题描述】:

尝试以下方法:

String[] = "abcde|12345|xyz".split("|");

结果不会像(至少我..)预期的那样。

使用任何其他字符似乎都可以。

String[] = "abcde,12345,xyz".split(",");

那么管道有什么特别之处呢?

【问题讨论】:

    标签: java parsing


    【解决方案1】:

    Java String.split() 需要一个正则表达式,并且管道字符在正则表达式中具有除逗号之外的特殊含义。请尝试以下操作:

    String[] = "abcde|12345|xyz".split("\\|");
    

    【讨论】:

    • 想出了一个 - 但会给出答案,因为它也包含解决方案。
    • 对不起版主的“谢谢”评论,但我一直在努力寻找这个解决方案,终于在这里找到了......
    【解决方案2】:

    split 方法需要一个正则表达式,而“|”是正则表达式世界中的特殊字符:http://www.tutorialspoint.com/java/java_string_split.htm

    【讨论】:

    • 啊哈!有趣的是默认使用正则表达式。谢谢。那么..如何逃避它来做我想做的事?哦,等一下,我明白了——需要转义反斜杠..这样:split("\\|")
    猜你喜欢
    • 1970-01-01
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2012-11-19
    • 2018-07-18
    相关资源
    最近更新 更多