[英]Parse number with positive/negative prefix from string in java
在java中解析數字是非常直接的,即如果字符串格式為'n'或'-n' ,則使用Integer.parseInt(s),但不幸的是它無法解析'+ n'格式的字符串。
那么,如果它包含正或負前綴: '+ n'或'-n',那么從java中解析數字的最有效/優雅的方法是什么?
Integer.parseInt(s.replace("+", ""));
事實上,有很多陷阱使用Integer來解析這樣的數字,因為Integer有非常特定的大小和格式(“1,000,000.00”)的邊界沒有解析那樣,但我正在把你的問題當作Integer.parseInt遇到你的需要很好,你只需處理數據中的+。
僅供參考,這已在Java 7中修復。
在
JDK 1.7
之前,以下代碼段的結果是什么?
double x = Double.parseDouble("+1.0");
int n = Integer.parseInt("+1");
如果您知道答案,請在背面拍拍:
+1.0
始終是有效的浮點數,但在Java 7之前,+1
不是有效整數。 對於從字符串構造int
,long
,short
,byte
和BigInteger
值的所有各種方法,現在已經修復了這個問題。 它們的數量超出了您的想象。 除了解析(Int | Long | Short | Byte)之外,還有使用十六進制和八進制輸入的decode方法,以及生成包裝器對象的valueOf
方法。BigInteger(String)
構造函數也會更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.