繁体   English   中英

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

[英]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);

这里有两个独立的问题:

  1. replaceAll与正则表达式一起使用。 如果您还不了解正则表达式,则可能需要replace

  2. 您将忽略replaceAll的结果,并打印原始字符串。 您应该改为打印结果:

     String solution = problm.replace(piece, ans); System.out.println(solution); 

    (当然,您不必使用临时变量,也不必使用solution

您需要再次将其分配给问题。 字符串是不可变的,不能更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM