2016-05-08 6 views
-1

文字列の値を10進値で置き換えたい場合。し、「4」の文字列値ではなく、4 の「0.5」を交換したいされて、私はエラーを取得しています:ここで文字列の値をJavaの小数点以下の値に置き換える方法

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の代わりに、Javaで0.5

+3

サンプル入力と予想出力を表示できますか? – TheLostMind

+0

入力は "4"の代わりに "0.5"を置き換えます出力は0.5 – programmer

+0

です。文字列が "4"の場合、単に新しい文字列 "0.5"を作成して使用しないでください。これはXYの問題のように見える – TheLostMind

答えて

1

Stringは不変であるので、あなたのような「0.5」と「4」を交換した後、値を割り当てる必要があります出力します。

str = str.replace("4", "0.5");//use replace instead of replaceAll 

この呼び出しは、すべての出現を4から0.5に置き換えます。 4の出現が複数ある場合は、出現をすべて置き換えます。


入力:4444
出力:0.50.50.50.5

+0

印刷0.1の代わりに機能しません。これはreplaceAllでも起こっていました。 – programmer

+0

'activ.code1'の値を共有できますか? – SMA

+0

yup activ.code1は、 "0"、 "0.5"、 "1"に置き換えられる "3"、 "4"、 "5"の値を持っています – programmer

関連する問題