【问题标题】:How to split a string on | (pipe) in Java [duplicate]如何在 | 上拆分字符串Java中的(管道)[重复]
【发布时间】:2011-10-04 16:38:20
【问题描述】:

我有一个类似|serialNo|checkDelta?|checkFuture?|checkThis?| 的字符串。

现在我使用下面的代码来分割字符串。

String[] splitString = str.split("|");

但是当我使用它时,我得到包含每个字符的字符串数组,而我需要包含 serialNocheckDelta?checkFuture?checkthis? 等字母的字符串。

如何获得这些?我错过了什么吗?

【问题讨论】:

    标签: java string split


    【解决方案1】:

    您必须转义管道字符(split 将正则表达式作为参数,因此“|”是 control character):

    str.split("\\|");
    

    请注意:结果数组的开头包含一个空字符串,因为您有“|”在字符串的开头。

    【讨论】:

    • +1 表示要提到的好东西
    • 等价正则表达式的另一种语法是:"[|]" -- 管道在字符类中失去了意义。
    【解决方案2】:

    使用 StringTokenizer..

    String str="|serialNo|checkDelta?|checkFuture?|checkThis?|"
    StringTokenizer st=new StringTokenizer(str,"|",false);
    String s1 = st.nextToken();
    String s2 = st.nextToken();
    String s3 = st.nextToken();
    String s4 = st.nextToken();
    

    s1=序列号

    s2=checkDelta?

    s3=checkFuture?

    s4=checkThis?

    请参阅 javadocs 以了解有关 StringTokenizer 的信息

    http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html

    【讨论】:

      【解决方案3】:

      您正在使用一个特殊字符,必须对其进行转义:str.split("\\|");

      【讨论】:

        猜你喜欢
        • 2012-11-19
        • 2018-03-29
        • 1970-01-01
        • 2023-03-23
        • 1970-01-01
        • 2010-09-14
        • 2017-07-22
        • 1970-01-01
        相关资源
        最近更新 更多