我收到NumberFormatException
,當我嘗試用Integer.parseInt()
解析265,858。如何將包含逗號的數字字符串解析爲java中的整數?
有沒有什麼辦法將它解析爲一個整數?
我收到NumberFormatException
,當我嘗試用Integer.parseInt()
解析265,858。如何將包含逗號的數字字符串解析爲java中的整數?
有沒有什麼辦法將它解析爲一個整數?
這是逗號小數點分隔符或者是這兩個數字?在第一種情況下,你必須提供Locale
到NumberFormat
類使用逗號作爲小數點分隔符:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
這導致265.858
。但是,使用美國區域,那麼你會得到265858
:
NumberFormat.getNumberInstance(java.util.Locale.US).parse("265,858")
這是因爲在法國他們對待逗號作爲小數點分隔符,而在美國 - 作爲分組(千)分隔符。
如果它們是兩個數字 - String.split()
它們並獨立解析兩個獨立的字符串。
「將其解析爲一個整數」幾乎縮小了解釋:) – 2012-08-15 16:46:12
第三個選項:它是一個分組分隔符。 – 2012-08-15 16:46:39
是:一個整數,千位分隔符。 – 2012-08-15 16:47:05
一種辦法是剝去逗號:
"265,858".replaceAll(",","");
更簡單快捷的解決方案:'replace'代替'replaceAll'。 – 2012-08-15 16:49:17
試試這個:
String x = "265,858 ";
x = x.split(",")[0];
System.out.println(Integer.parseInt(x));
編輯: 如果你希望它四捨五入到最接近的整數:
String x = "265,858 ";
x = x.replaceAll(",",".");
System.out.println(Math.round(Double.parseDouble(x)));
在將其解析爲int之前,您可以刪除,
01:
int i = Integer.parseInt(myNumberString.replaceAll(",", ""));
其點擊對我來說,假設這是一個單一的數字,是第一件事...
String number = "265,858";
number.replaceAll(",","");
Integer num = Integer.parseInt(number);
或者您可以使用NumberFormat.parse
,將其設置爲僅限整數。
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.html#parse(java.lang.String)
如果它是一個&要刪除分隔號,NumberFormat
將一些回報給你。使用getNumberInstance
方法時,請確保使用正確的區域設置。
例如,某些區域設置將逗號和小數點替換爲您可能習慣的值。
然後只需使用intValue
方法返回一個整數。儘管如此,你必須將所有東西包裝在try/catch塊中,以解釋Parse Exceptions。
try {
NumberFormat ukFormat = NumberFormat.getNumberInstance(Locale.UK);
ukFormat.parse("265,858").intValue();
} catch(ParseException e) {
//Handle exception
}
問題並不清楚,'''是什麼?數千或十進制分隔符? – 2012-08-15 16:44:06
我認爲這是...有沒有什麼辦法可以將它解析成** an **整數? – SiB 2012-08-15 16:46:28
還是2 csv格式的整數? 265和858? – 2012-08-15 16:47:41