public class NewClass {
public static void main(String[] args) {
String piece = "10*2";
String ans = "20";
String problm = "10*2*9";
System.out.println(piece);
System.out.println(ans);
problm.replaceAll(piece, ans);
System.out.println(problm);
}
}
这是我的代码,当我打印problm
时,它会打印:10*2*9
我希望它打印20*9
,请告诉我我做错了什么
答案 0 :(得分:5)
首先,使用replace
代替replaceAll
。 replaceAll
使用您可能不想要的正则表达式。
其次,Java中的字符串是不可变的,这意味着它们的值永远不会被改变。您需要将problm.replaceAll(piece, ans);
的值分配回problm
:
problm = problm.replace(piece, ans);
答案 1 :(得分:2)
这里有两个不同的问题:
replaceAll
适用于正则表达式。如果您还没有理解正则表达式,那么您可能需要replace
代替。
您忽略replaceAll
的结果,并打印原始字符串。您应该打印结果:
String solution = problm.replace(piece, ans);
System.out.println(solution);
(当然,您不必使用临时变量,如果您这样做,则不必将其称为solution
答案 2 :(得分:1)
您需要再次将其分配给problm。 String是不可变的,不能更改。