java中如何用十进制值替换字符串中的值
要将字符串值替换为十进制值。假设“4”是要替换“0.5”而不是4的字符串值。 我得到一个错误:java中如何用十进制值替换字符串中的值,java,Java,要将字符串值替换为十进制值。假设“4”是要替换“0.5”而不是4的字符串值。 我得到一个错误: at sun.misc.FloatingDecimal.parseFloat(Unknown Source) at java.lang.Float.parseFloat(Unknown Source) 以下是我尝试过的: float rename = Float.parseFloat(activ.code1); String str = Float.toString(rename); str
at sun.misc.FloatingDecimal.parseFloat(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
以下是我尝试过的:
float rename = Float.parseFloat(activ.code1);
String str = Float.toString(rename);
str.replaceAll("4", "0.5");
activ.code1=str;
我的输入是“4”,我希望输出是“0.5”。但当我只给出替换时,比如:
String.replace("4", "0.5");
它打印0.1而不是0.5,java中的字符串是不可变的,因此您需要在将“4”替换为“0.5”后分配值,如: 此调用将替换所有出现的4到0.5。如果4多次出现,则它将替换所有出现 e、 g.
输入:4444
输出:0.50.50.50.5您能给我们展示一下示例输入和预期输出吗?输入代替了“4”我正在替换“0.5”输出为0.5如果您的字符串只是“4”,为什么不创建一个新字符串“0.5”并使用它呢?。这看起来像一个XY问题fyi:From:
activ.code1
具有“3”、“4”、“5”
值,我将其替换为“0”、“0.5”、“1”
,看起来工作正常这是您所期望的吗?它不工作,而不是0.5打印0.1。这也发生在replaceAll上。是的,activ.code1有“3”、“4”、“5”个值,我将它们替换为“0”、“0.5”、“1”,这就是为什么调用Float.parseFloat(activ.code1)代码>正在失败@程序员“3”、“4”、“5”
不是浮点数,因此无法使用parseFloat()
解析单个文本值。请编辑问题,并用MCVE()说明您的输入是什么以及您希望输出是什么。
str = str.replace("4", "0.5");//use replace instead of replaceAll