代码之家  ›  专栏  ›  技术社区  ›  sproketboy

使用Java字符串分割时出错

  •  0
  • sproketboy  · 技术社区  · 14 年前

    嗨,大家好,

    我使用基本拆分已有一段时间了,我只是根据一个简单的标记(如“”或“,)将字符串解析为数组。

    因此,当然,客户会尝试这样做: \\.br\ 失败得很惨。

    我需要解析为一个行数组。例如,字符串如下所示:

    "LINE 1\\.br\\LINE 2\\.br\\LINE 3\\.br\\LINE 4\\.br\\"

    但这失败了 java.util.regex.PatternSyntaxException: Unexpected internal error .

    有什么想法吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   jayshao    14 年前

    别忘了 String.split takes a Regex ,而且大多数人都输入了一个字符串文字,所以您必须从\ for regex 对字符串进行转义,这样就可以在字符串参数中使用“\\”来表示单个\字符。

    例如

    String.split("\\\")
    

    所以在你的例子中:

    String.split("\\\\\\.br\\\\") // extra slash for regex, and String encoded
    
        2
  •  5
  •   axtavt    14 年前

    你可以使用 Pattern.quote() 要转义用作regexp的字符串,请执行以下操作:

    ... = s.split(Pattern.quote("\\.br\\"));