首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用split("|")按管道符号拆分Java字符串

使用split("|")按管道符号拆分Java字符串
EN

Stack Overflow用户
提问于 2012-05-29 17:10:02
回答 5查看 254.3K关注 0票数 204

Java官方文档声明:

例如,字符串"boo:and:foo"会产生以下结果,其中包含以下表达式Regex Result:

代码语言:javascript
复制
{ "boo", "and", "foo" }"

这就是我需要的工作方式。但是,如果我运行以下命令:

代码语言:javascript
复制
public static void main(String[] args){
        String test = "A|B|C||D";

        String[] result = test.split("|");

        for(String s : result){
            System.out.println(">"+s+"<");
        }
    }

它打印:

代码语言:javascript
复制
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<

这与我的预期相去甚远:

代码语言:javascript
复制
>A<
>B<
>C<
><
>D<

为什么会发生这种情况?

EN

回答 5

Stack Overflow用户

发布于 2014-01-10 00:07:54

使用适当的转义:string.split("\\|")

或者,在Java 5+中,使用为此目的而创建的帮助程序Pattern.quote()

代码语言:javascript
复制
string.split(Pattern.quote("|"))

它可以处理任意输入字符串。当你需要引用/转义用户输入时非常有用。

票数 35
EN

Stack Overflow用户

发布于 2016-09-01 16:46:59

使用以下代码:

代码语言:javascript
复制
public static void main(String[] args) {
    String test = "A|B|C||D";

    String[] result = test.split("\\|");

    for (String s : result) {
        System.out.println(">" + s + "<");
    }
}
票数 6
EN

Stack Overflow用户

发布于 2015-11-29 21:48:37

您还可以使用apache库并执行以下操作:

代码语言:javascript
复制
StringUtils.split(test, "|");
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10796160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档