簡體   English   中英

使用java中字符串的正/負前綴解析數字

[英]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中修復。

從, Java SE8為真的不耐煩

JDK 1.7之前,以下代碼段的結果是什么?

double x = Double.parseDouble("+1.0");

int n = Integer.parseInt("+1");

如果您知道答案,請在背面拍拍: +1.0始終是有效的浮點數,但在Java 7之前, +1不是有效整數。 對於從字符串構造intlongshortbyteBigInteger值的所有各種方法,現在已經修復了這個問題。 它們的數量超出了您的想象。 除了解析(Int | Long | Short | Byte)之外,還有使用十六進制和八進制輸入的decode方法,以及生成包裝器對象的valueOf方法。 BigInteger(String)構造函數也會更新。

暫無
暫無

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

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