【问题标题】:Split string in java for delimiter在java中拆分字符串作为分隔符
【发布时间】:2011-12-17 01:33:30
【问题描述】:

我的问题是我想用分隔符^ 分割java 中的字符串。 我使用的语法是:

readBuf.split("^");

但这不会拆分字符串。事实上这适用于所有其他分隔符,但不适用于^

【问题讨论】:

    标签: java android split delimiter


    【解决方案1】:

    split 使用正则表达式(不幸的是,IMO)。 ^在正则表达式中有特殊含义,需要转义:

    String[] bits = readBuf.split("\\^");
    

    (Java 转义需要第一个反斜杠。实际的字符串只是一个反斜杠和插入符号。)

    或者,使用Guava 及其Splitter 类。

    【讨论】:

      【解决方案2】:

      使用\\^。因为^ 是一个特殊字符,表示行锚的开始。

      String x = "a^b^c";
      System.out.println(Arrays.toString(x.split("\\^"))); //prints [a,b,c]
      

      【讨论】:

        【解决方案3】:

        或者你可以使用... StringTokenizer 而不是 split
        StringTokenizer st=new StringTokenizer(Your string,"^");
        while(st.hasMoreElements()){
        System.out.println(st.nextToken());
        }

        【讨论】:

          【解决方案4】:

          你也可以这样用:

          readBuf.split("\\u005E");
          

          \u005E是“^”的十六进制Unicode字符,需要加一个“\”来转义。

          所有字符都可以这样转义。

          【讨论】:

          • ...此时阅读您的代码的任何人都必须想知道它到底在做什么,并查找字符 U+005E...(或者您需要注释来解释它。)跨度>
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-06-29
          • 1970-01-01
          • 1970-01-01
          • 2013-10-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多