Java:replaceAll不起作用,因为我认为它应该

gui*_*ord 0 java replaceall

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码,当我打印problm它时打印:10*2*9 我想要它打印20*9,请告诉我我做错了什么

Aug*_*ust 5

首先,使用replace而不是replaceAll.replaceAll使用您可能不想要的正则表达式.

其次,Java中的字符串是不可变的,这意味着它们的价值永远不会改变.您需要将值分配problm.replaceAll(piece, ans);problm:

problm = problm.replace(piece, ans);
Run Code Online (Sandbox Code Playgroud)