java中的字符串replaceAll()

时间:2015-08-18 07:30:58

标签: java

你能解释输出

吗?
String str = "Total Amount is AMOUNT";
String amount = "$10.00";
str = str.replaceAll("AMOUNT", amount);
System.out.println(str);

输出是什么? 它抛出异常

Exception in thread "main" java.lang.IndexOutOfBoundsException: No group 1

删除$ work.Why?

5 个答案:

答案 0 :(得分:12)

String.replaceAll()接受正则表达式

正则表达式中的$用于替换捕获的组。与$1类似,代表第一个捕获组的内容......依此类推。

在您的情况下,由于您根本不使用正则表达式,只需使用String.replace("AMOUNT", amount)

答案 1 :(得分:4)

$是正则表达式中的特殊字符。 您可以使用\\

来转义它
      String amount = "\\$10.00";

答案 2 :(得分:0)

你需要把它写成

String amount = "\\$10.00";

答案 3 :(得分:0)

因为$是特殊的正则表达式符号。如果你想使用它这样的常用符号。

String str = "Total Amount is AMOUNT";
String amount = "\\$10.00";
str = str.replaceAll("AMOUNT", amount);
System.out.println(str);

答案 4 :(得分:-3)

当提供$时,它将其视为正则表达式,但实际上不是。