[英]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.parseSomething
和Type.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.