[英]converting String into long in java
我無法將String s="45,333"
轉換為數字,例如long或double。 誰能幫我解決問題。.當我嘗試運行該代碼時,我添加了模型代碼,其中顯示NumberFormatException
..
public static void main(String args[])
{
long a=85200;
NumberFormat numberFormat=NumberFormat.getNumberInstance();
String s=numberFormat.format(a);
Long l=Long.parseLong(s.toString());
System.out.println("The value:"+s);
System.out.println("The value of long:"+l);
}
考慮使用NumberFormat.parse()
方法而不是Long.parseLong()
。
Long.parseLong()
期望String
里面沒有任何格式符號。
混合NumberFormat
和Long.parseLong()
不是一個好主意。
NumberFormat
可以parseXXX()
語言環境(在您的示例中,它使用計算機的默認語言環境),也可以顯式指定格式模式,而Number
子類的parseXXX()
方法僅讀取“普通”數字(可選的負號+數字)。
如果你用它的格式NumberFormat
,你應該使用NumberFormat.parse()
來解析回來。 但是,您不應依賴默認語言環境,而應嘗試指定一個默認語言環境(或將DecimalFormat
與模式結合使用)。 否則,您可能會遇到一些令人討厭且難以發現的錯誤。
如果您不關心格式,請考慮使用Long.toString()
將long值轉換為字符串,並使用Long.parseLong()
將其轉換回。 它更易於使用,線程安全(與NumberFormat
不同),並且在任何地方都相同。
如前所述,您可以像這樣使用NumberFormat.parse()
:
public static void main(String args[]) {
long a=85200;
NumberFormat numberFormat=NumberFormat.getNumberInstance();
String s=numberFormat.format(a);
Long l;
try {
l = numberFormat.parse(s.toString()).longValue();
} catch (ParseException ex) {
l = 0L;
// Handle exception
}
System.out.println("The value:"+s);
System.out.println("The value of long:"+l);
}
long l = Long.valueOf(s);
System.out.println("The value of long:"+l);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.