【问题标题】:Unable to use String.split on string with ^ (caret) symbol无法对带有 ^(插入符号)符号的字符串使用 String.split
【发布时间】:2012-10-30 04:31:25
【问题描述】:

我有一个字符串 218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^,我想用字符分割字符串^ .我试过这样的

String mainString = "218~2~4~6^219~1~3~3^218~5~2~2^217~10~3~8^";

String[] tokens = mainString.split("^");

for (String stri: tokens){
        System.out.println("\nString tokens: " + stri);
    }

但它不起作用..请帮我拆分字符串

【问题讨论】:

  • 转义字符。试试mainString.split("\\^")
  • Java 的String.split() 方法充满了有问题的边缘情况。如果您能够使用出色的 Google Guava 库,请务必查看它的 Splitter 类,它更易于使用。
  • 非常感谢..现在工作正常..

标签: java regex string split


【解决方案1】:

在^ 前面使用backslash(\),因为它是正则表达式中的特殊字符(匹配字符串的开头)。在前面添加 backslash(\) 后,它会将 ^ 视为文字,您需要执行拆分。

 String[] tokens = mainString.split("\\^");

【讨论】:

  • 值得一提的是,^ 符号需要转义,因为它是一个特殊字符,在正则表达式语法中表示“行首”。
  • @user1784541:很高兴知道,它的工作。请不要忘记接受答案。
猜你喜欢
  • 1970-01-01
  • 2017-07-15
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
相关资源
最近更新 更多