【问题标题】:Java: Understanding the String replaceAll() methodJava:理解 String replaceAll() 方法
【发布时间】:2011-07-08 13:07:04
【问题描述】:

我希望在这里找到这个问题的答案。

首先,

blah[abc] = blah[abc].replaceAll("(.*) (.*)", "$2, $1");

谁能解释一下 (.*)、$2 和 $1 是什么?

其次,当我将它嵌套在 for 语句中以反转字符串的两个部分时,我会遇到异常错误。我想知道是否有人知道这是为什么。

谢谢

编辑:这是我收到的错误

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 1 在 ChangeNames.main(ChangeNames.java:21)

【问题讨论】:

    标签: java regex replaceall


    【解决方案1】:

    (.*) - 将是匹配任意数量字符的模式。括号会将其标记为子模式(用于反向引用)。

    $2 & $1 - 是反向引用。这些将是您的第二个和第一个子模式中匹配的内容。

    基本上 replaceAll("(.) (.)", "$2, $1") 会查找由空格分隔的字符,然后在空格前添加逗号,除了翻转部分.例如:

    a b => b, a
    Hello world => Hellw, oorld
    

    不确定嵌套...您可以发布您正在运行的代码吗?

    【讨论】:

      【解决方案2】:

      您的正则表达式“(.)(.)”将是这样的:“(x)(y)”这将被“$2,$1”替换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 2013-09-03
        • 1970-01-01
        • 2018-07-10
        • 2012-06-29
        • 2015-04-28
        • 2012-06-07
        相关资源
        最近更新 更多