你能解释输出
吗?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?
答案 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)
当提供$时,它将其视为正则表达式,但实际上不是。