java.lang.String.replace problem 的提示?

2022-09-03 08:47:27

我想在我要写入文件的字符串/双精度中将“.”替换为“,”。

使用以下 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

为什么不做它应该做的事情呢?我希望最后两行包含“,”。

我必须做/使用其他东西吗?建议?


答案 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);

答案 2

原始字符串未被修改。该调用返回修改后的字符串,因此您需要执行以下操作:

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