我想替换“” 通过“”在一个字符串/双,我想要写一个文件。
使用下面的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
为什么不能代替做什么是应该做的? 我希望最后两行,以包含“”。
我必须做的/用别的东西? 建议?
你需要指定新值回变量。
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);
原来的字符串不被修改。 调用返回修改后的字符串,所以你需要这样做:
String modded = myDoubleString.replace(".",",");
System.out.println( modded );
更大的问题是,为什么不使用DecimalFormat
而不是做字符串替换?
replace
返回一个新字符串 (因为字符串是在Java中不可改变的)
String newString = myDoubleString.replace(".", ",");
一定要记住,字符串是不可变的。 他们不能改变。 如果你打电话,改变它以某种方式字符串的方法,你需要存储的返回值。 总是。
我记得越来越多的统一几次这种抓出来:)