将String转换为Integer / Float / Double

时间:2012-09-11 08:11:00

标签: java android

我正在尝试将字符串转换为Integer/Float/Double,但我得到了NumberFormatException

我的字符串是37,78584,现在我将其转换为我NumberFormatException中的任何一个。

如何将此string转换为其中任何一个。

请帮助我摆脱这个问题。

9 个答案:

答案 0 :(得分:11)

您必须使用适当的区域设置,例如

String s = "37,78584";
Number number = NumberFormat.getNumberInstance(Locale.FRENCH).parse(s);
double d= number.doubleValue();
System.out.println(d);

打印

37.78584

答案 1 :(得分:1)

,替换为""字符串中的空白,然后转换您的数字

String str = "37,78584";
str = str.replaceAll("\\,","");

答案 2 :(得分:1)

检查字符串值

if(String .equals(null or ""){

} else{
    //Change to integer
}

答案 3 :(得分:1)

使用Type.parseSomethingType.valueOf等方法不是最佳选择,因为它们的行为取决于区域设置。例如,在某些语言中,十进制分隔符为'。'在其他','时的符号。因此,在某些系统中,代码可以正常工作,但崩溃并抛出异常。更合适的方法是使用格式化程序。 JDK和Android SDK有许多可立即使用的格式化程序,用于许多与语言环境无关的用途。看看NumberFormat

答案 4 :(得分:1)

最佳做法是使用使用逗号作为分隔符的Locale,例如法语区域设置:

double d = NumberFormat.getNumberInstance(Locale.FRENCH).parse("37,78584").doubleValue();

最快的方法就是用句号替换任何逗号。

double d = String.parseDouble("37,78584".replace(",","."));

答案 5 :(得分:0)

在解析之前执行此操作以删除逗号:

myString.replaceAll(",", "")​;

答案 6 :(得分:0)

首先使用以下代码

删除,
String s= "37,78584";
s=s.replaceAll(",", "");

然后使用下面的代码

For String to Integer: -

Integer.parseInt(s);

For String to Float: -

Float.parseFloat(s);

For String to Double: -

Double.parseDouble(s);

答案 7 :(得分:0)

替换'

String value  = "23,87465";
int value1 = Integer.parseInt(value.toString().replaceAll("[^0-9.]",""));

答案 8 :(得分:-1)

尝试替换,,然后转换为Integer / float / double

String mysting="37,78584";
String newString=myString.replace(",", "");
int value=Integer.parseInt(newString);