我正在尝试将一个字符串转换为整数/浮点数/双精度浮点数
,但是出现了NumberFormatException
的错误。
我的字符串是37,78584
,无论我将其转换为其中任何一种类型,都会出现NumberFormatException
的错误。
请问如何将这个字符串
转换为任何一种类型呢?
请帮助我解决这个问题。
你需要使用与数字相适应的区域设置,例如:
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
}
double d = NumberFormat.getNumberInstance(Locale.FRENCH).parse("37,78584").doubleValue();
double d = String.parseDouble("37,78584".replace(",","."));
使用像Type.parseSomething
和Type.valueOf
这样的方法并不是最好的选择,因为它们的行为取决于语言环境。例如,在某些语言中,小数分隔符是“.”符号,而在其他语言中则是“,”。因此,在某些系统中,代码可以正常工作,而在其他系统中,则会崩溃并抛出异常。更合适的方法是使用格式化程序。JDK和Android SDK有许多可用于许多目的的现成格式化程序,这些格式化程序与语言环境无关。请查看NumberFormat
首先使用以下代码删除,
String s= "37,78584";
s=s.replaceAll(",", "");
然后使用以下代码
将字符串转换为整数:
Integer.parseInt(s);
将字符串转换为浮点数:
Float.parseFloat(s);
将字符串转换为双精度浮点数:
Double.parseDouble(s);
String value = "23,87465";
int value1 = Integer.parseInt(value.toString().replaceAll("[^0-9.]",""));
在解析之前执行以下操作以删除逗号:
myString.replaceAll(",", "");
尝试将,
替换为整数/浮点数/双精度数
String mysting="37,78584";
String newString=myString.replace(",", "");
int value=Integer.parseInt(newString);