文字列をに変換しようとしていますが、。Integer/Float/Double
を取得しましたNumberFormatException
。
私の文字列は37,78584
、今私はこれを私が得たそれらのいずれかに変換していますNumberFormatException
。
どうすればこれstring
をそれらのいずれかに変換できますか。
この問題から抜け出すのを手伝ってください。
次のような番号に適切なロケールを使用する必要があります
String s = "37,78584";
Number number = NumberFormat.getNumberInstance(Locale.FRENCH).parse(s);
double d= number.doubleValue();
System.out.println(d);
プリント
37.78584
,
文字列を空白に置き換えて""
から、数値を変換します
String str = "37,78584";
str = str.replaceAll("\\,","");
文字列値を確認してください
それ
if(String .equals(null or ""){
} else{
//Change to integer
}
のようなメソッドを使用することは、その動作がロケールに依存するため、最良の選択ではありませんType.parseSomething
。Type.valueOf
たとえば、一部の言語では、小数点は「。」です。他の'、'にあるときの記号。したがって、一部のシステムではコードが正常に機能し、他のシステムではクラッシュして例外がスローされます。より適切な方法は、フォーマッターを使用することです。JDKとAndroidSDKには、ロケールに依存しない多くの目的ですぐに使用できるフォーマッターが多数あります。NumberFormatをご覧ください
ベストプラクティスは、フランス語ロケールなど、区切り文字としてコンマを使用するロケールを使用することです。
double d = NumberFormat.getNumberInstance(Locale.FRENCH).parse("37,78584").doubleValue();
最速のアプローチは、コンマをピリオドに置き換えることです。
double d = String.parseDouble("37,78584".replace(",","."));
解析してコンマを削除する前に、これを実行してください。
myString.replaceAll(",", "");
まず,
、以下のコードを使用して、これを削除します
String s= "37,78584";
s=s.replaceAll(",", "");
そして、以下のコードを使用します
文字列から整数へ:-
Integer.parseInt(s);
文字列をフロートさせる場合:-
Float.parseFloat(s);
文字列を2倍にする場合:-
Double.parseDouble(s);
交換 '
String value = "23,87465";
int value1 = Integer.parseInt(value.toString().replaceAll("[^0-9.]",""));
を置き換えて,
から、Integer / float/doubleに変換してみてください
String mysting="37,78584";
String newString=myString.replace(",", "");
int value=Integer.parseInt(newString);