簡體   English   中英

將String轉換為Integer / Float / Double

[英]Convert String to Integer/Float/Double

我試圖將字符串轉換為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.parseSomethingType.valueOf方法不是最佳選擇,因為它們的行為取決於區域設置。 例如,在某些語言中,十進制分隔符為'。' 在其他','時的符號。 因此,在某些系統中,代碼可以正常工作,但崩潰並拋出異常。 更合適的方法是使用格式化程序。 JDK和Android SDK有許多可立即使用的格式化程序,用於許多與語言環境無關的用途。 看看NumberFormat

最佳做法是使用使用逗號作為分隔符的Locale,例如法語區域設置:

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(",", "");

然后使用下面的代碼

對於String到Integer: -

Integer.parseInt(s);

對於String to Float: -

Float.parseFloat(s);

要使字符串加倍: -

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM