Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串转换为整数/浮点/双精度_Java_Android - Fatal编程技术网

Java 将字符串转换为整数/浮点/双精度

Java 将字符串转换为整数/浮点/双精度,java,android,Java,Android,我试图将字符串转换为Integer/Float/Double,但得到了NumberFormatException 我的字符串是3778584,现在我将它转换为我得到的NumberFormatException中的任何一个 如何将此字符串转换为其中任何一个 请帮我解决这个问题。将,替换为“字符串中的空白,然后转换您的数字 String str = "37,78584"; str = str.replaceAll("\\,",""); 在解析前执行此操作以删除逗号: myString.replac

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

我的字符串是
3778584
,现在我将它转换为我得到的
NumberFormatException
中的任何一个

如何将此
字符串
转换为其中任何一个


请帮我解决这个问题。

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

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

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

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

首先,使用下面的代码删除此

String s= "37,78584";
s=s.replaceAll(",", "");
然后使用下面的代码

String s= "37,78584";
s=s.replaceAll(",", "");
对于字符串到整数:-

Integer.parseInt(s);
对于要浮动的字符串:-

Float.parseFloat(s);
对于要加倍的字符串:-

Double.parseDouble(s);

您必须为数字使用适当的区域设置,如

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

37.78584

尝试替换
,然后将其转换为整数/浮点/双精度

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

检查字符串值

取代

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

使用
Type.parseSomething
Type.valueOf
等方法不是最佳选择,因为它们的行为取决于区域设置。例如,在某些语言中,十进制分隔符是“.”符号,而在其他语言中是“,”。因此,在某些系统中,代码可以在其他系统中正常工作,它会崩溃并引发异常。更合适的方法是使用格式化程序。JDK和androidsdk有许多现成的格式化程序,可用于多种用途,这些格式化程序与语言环境无关。看看

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

double d = NumberFormat.getNumberInstance(Locale.FRENCH).parse("37,78584").doubleValue();
最快的方法就是用句点替换任何逗号

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

使用适当的区域设置是更好的方法。你需要用句号代替逗号,而不是空白。