的提示java.lang.String.replace问题? [重复](Hints for ja

2019-06-17 13:36发布

这个问题已经在这里有一个答案:

  • 字符串不是取代字符 5个回答

我想替换“” 通过“”在一个字符串/双,我想要写一个文件。

使用下面的Java代码

double myDouble = myObject.getDoubleMethod(); // returns 38.1882352941176
System.out.println(myDouble);

String myDoubleString = "" + myDouble;
System.out.println(myDoubleString);

myDoubleString.replace(".", ",");
System.out.println(myDoubleString);

myDoubleString.replace('.', ',');
System.out.println(myDoubleString);

我得到以下输出

38.1882352941176
38.1882352941176
38.1882352941176
38.1882352941176

为什么不能代替做什么是应该做的? 我希望最后两行,以包含“”。

我必须做的/用别的东西? 建议?

Answer 1:

你需要指定新值回变量。

double myDouble = myObject.getDoubleMethod(); // returns 38.1882352941176
System.out.println(myDouble);

String myDoubleString = "" + myDouble;
System.out.println(myDoubleString);

myDoubleString = myDoubleString.replace(".", ",");
System.out.println(myDoubleString);

myDoubleString = myDoubleString.replace('.', ',');
System.out.println(myDoubleString);


Answer 2:

原来的字符串不被修改。 调用返回修改后的字符串,所以你需要这样做:

String modded = myDoubleString.replace(".",",");
System.out.println( modded );


Answer 3:

更大的问题是,为什么不使用DecimalFormat而不是做字符串替换?



Answer 4:

replace 返回一个新字符串 (因为字符串是在Java中不可改变的)

String newString = myDoubleString.replace(".", ",");


Answer 5:

一定要记住,字符串是不可变的。 他们不能改变。 如果你打电话,改变它以某种方式字符串的方法,你需要存储的返回值。 总是。

我记得越来越多的统一几次这种抓出来:)



文章来源: Hints for java.lang.String.replace problem? [duplicate]