2017-07-15 26 views
0

私は電卓を作っています。計算機が機能するために、私はすべての整数を文字列の倍数に変換する必要があります。たとえば、私はこの文字列を持っている:3 * 8 + 5/2-4、私は彼に変換したい:3.0 * 8.0 + 5.0/2.0-4.0。 どうすればいいですか?intを文字列に変換する方法doubleを文字列に変換するには?

編集:私はこの文字列がある場合:3.0 * 8.0 + 5.0/2.0から4を、私は彼を変換したい:* 8.0 3.0 + 5.0/2.0から4.0

+0

解析時に 'Double#parseDouble'を使用してください。 –

+1

3.4564646のように、すでに文字列にダブルがある場合はどうなりますか?それは小数点以下1桁に丸められるべきですか? –

+0

@JacobG。彼は+、/、 - などの数学演算子を含んでいるので、彼は自分の文字列をdoubleとして解析できません –

答えて

0

あなたがString#replaceAllを使って正規表現で文字列を置き換えることができますたとえば、次のようになります。

String regex = "(?<=^|[+/(*)-])(\\d+)(?=[+/(*)-]|$)"; 

// $1 references to the first captured group ---v 
String result1 = "3*8+5/2-4".replaceAll(regex, "$1.0"); 
//  ^--- "3.0*8.0+5.0/2.0-4.0" 

String result2 = "3.0*8+5/2-4.0".replaceAll(regex, "$1.0"); 
//  ^--- "3.0*8.0+5.0/2.0-4.0" 

String result3 = "3.0*(8+5)/(2-4.0)".replaceAll(regex, "$1.0"); 
//  ^--- "3.0*(8.0+5.0)/(2.0-4.0)" 
+2

あなたの解決策は既に存在していればあなたの解決策は動作しません –

+0

@AlexandrLihonosov OPは 'int'を' double'と言っています。あなたはOPの質問を見たことがありますか? –

+1

はい、これは私の前提です。このようなものもあります:3 * 8 + 5/2-4 + 3.5どうしてですか? –

関連する問題