【问题标题】:Why does split(".") fail? java [duplicate]为什么 split(".") 会失败? java [重复]
【发布时间】:2014-11-17 18:45:24
【问题描述】:

我写了以下代码:

String[] arr = ((String) "asd.asd").split(".");

arr=[]。为什么?

【问题讨论】:

  • 因为 split 函数需要一个正则表达式

标签: java


【解决方案1】:

split 将正则表达式作为参数。 “。”在常规中表示“任何字符”。

改为:

 String[] arr = "asd.asd".split("\\.");

反斜杠转义了“.”的特殊含义。正则表达式中的字符。

http://docs.oracle.com/javase/tutorial/essential/regex/

【讨论】:

    【解决方案2】:

    split() 接受正则表达式。你应该逃避 . 使用 "\\." 。在正则表达式中. 是一个特殊字符(元字符),表示匹配任何字符

    【讨论】:

      【解决方案3】:

      因为'.'是一个特殊字符。你需要像这样写'\\.'

      来逃避它

      【讨论】:

      • 不,正斜杠真的无济于事。而且“特殊字符”真的不能描述发生了什么。
      【解决方案4】:

      您必须对. 进行双重转义,否则正则表达式会将其表示为“任何字符”。

      另外,您不需要将“asd.asd”转换为String

      String[] arr = "asd.asd".split("\\.");
      

      【讨论】:

        猜你喜欢
        • 2016-09-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        • 2016-04-11
        • 2021-10-10
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多