Java:了解String replaceAll()方法

Jds*_*Jds 5 java regex replaceall

我想在这里找出这个问题的答案.

首先,

blah[abc] = blah[abc].replaceAll("(.*) (.*)", "$2, $1");
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释一下(.*),$ 2和$ 1是什么?

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

谢谢

编辑:这是我收到的错误

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

Ser*_*gey 10

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

$ 2和$ 1 - 是后参考.这些将是您的第二个和第一个子模式中匹配的东西.

基本上replaceAll("(.)(.)","$ 2,$ 1")会找到用空格分隔的字符,然后在空格之前添加逗号,以及翻转部分.例如:

a b => b, a
Hello world => Hellw, oorld
Run Code Online (Sandbox Code Playgroud)

不确定嵌套...你能发布你正在运行的代码吗?