为啥单管道字符会混淆java拆分方法? [复制]
Posted
技术标签:
【中文标题】为啥单管道字符会混淆java拆分方法? [复制]【英文标题】: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(",");
那么管道有什么特别之处呢?
【问题讨论】:
【参考方案1】:Java String.split() 需要一个正则表达式,并且管道字符在正则表达式中具有除逗号之外的特殊含义。请尝试以下操作:
String[] = "abcde|12345|xyz".split("\\|");
【讨论】:
想出了一个 - 但会给出答案,因为它也包含解决方案。 对不起版主的“谢谢”评论,但我一直在努力寻找这个解决方案,终于在这里找到了......【参考方案2】:split
方法需要一个正则表达式,而“|”是正则表达式世界中的特殊字符:http://www.tutorialspoint.com/java/java_string_split.htm
【讨论】:
啊哈!有趣的是默认使用正则表达式。谢谢。那么..如何逃避它来做我想做的事?哦,等一下,我明白了——需要转义反斜杠..这样:split("\\|")以上是关于为啥单管道字符会混淆java拆分方法? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在android和java中将字符串拆分为句子? [复制]
为啥我的 jq / read / echo 管道会删除反斜杠?