我想在这里找出这个问题的答案。
首先,
blah[abc] = blah[abc].replaceAll("(.*) (.*)", "$2, $1");
有人可以向我解释一下(。*),$ 2和$ 1是什么?
其次,当我在for语句中嵌套以便反转字符串的两个部分时,我遇到异常错误。我想知道是否有人知道为什么会这样。
由于
编辑:这是我收到的错误
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:1 在ChangeNames.main(ChangeNames.java:21)
答案 0 :(得分:10)
(。*) - 将是匹配任意数量字符的模式。括号是将其标记为子模式(用于反向引用)。
$ 2& 1美元 - 是后面的参考。这些将是你的第二个和第一个子模式匹配的东西。
基本上replaceAll(“(。)(。)”,“$ 2,$ 1”)会找到以空格分隔的字符,然后在空格之前添加逗号,此外还要翻转部分。例如:
a b => b, a
Hello world => Hellw, oorld
不确定嵌套...你能发布你正在运行的代码吗?
答案 1 :(得分:-1)
你的正则表达式“(。)(。)”将属于这种类型:“(x)(y)”这将被替换为“$ 2,$ 1。