[英]Java: replaceAll doesn't work as I think it should
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
,请告诉我我做错了什么
首先,使用replace
代替replaceAll
。 replaceAll
使用正则表达式,您可能不希望这样。
其次,Java中的字符串是不可变的 ,这意味着它们的值永远不能更改。 您需要分配problm.replaceAll(piece, ans);
的值problm.replaceAll(piece, ans);
回到problm
:
problm = problm.replace(piece, ans);
这里有两个独立的问题:
replaceAll
与正则表达式一起使用。 如果您还不了解正则表达式,则可能需要replace
。
您将忽略replaceAll
的结果,并打印原始字符串。 您应该改为打印结果:
String solution = problm.replace(piece, ans); System.out.println(solution);
(当然,您不必使用临时变量,也不必使用solution
)
您需要再次将其分配给问题。 字符串是不可变的,不能更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.