我在哪裏可以得到一個智能號分析器,可以讀取,比方說一個數字串...號碼解析庫
- 整數形式:-12345
- 十進制形式:123.45
- 指數形式:15E-24
- 十六進制:#CAFEBABE
- 二進制:b01100101
...並得到我一個足夠表示(從一個byte
如果它適合,並且如果它不到GargantuanDouble
)?
我現在在Java中思考(Android),所以如果是Java,那就更好了;但我願意從另一種語言移植一個足夠小的圖書館。
我在哪裏可以得到一個智能號分析器,可以讀取,比方說一個數字串...號碼解析庫
...並得到我一個足夠表示(從一個byte
如果它適合,並且如果它不到GargantuanDouble
)?
我現在在Java中思考(Android),所以如果是Java,那就更好了;但我願意從另一種語言移植一個足夠小的圖書館。
除了指數形式,你可以處理每個案例並使用Integer.parseInt(String a,int radix);
假設您可以分離令牌,則可以使用Integer.decode()來解碼數字。
字符以下(可選的)負號 和/或基數說明符(「0X」,「0X」,「#」,或前導零)通過的Integer.parseInt方法解析爲 與指定的基數(10,16或 8)。這個字符序列必須表示一個正值或一個NumberFormatException將被拋出。如果指定String的第一個 字符是負號,則結果將被否定。字符串中不允許有空格 字符。
例如,
Integer.decode("0xabcf123"); // hex
Integer.decode("07651"); // octal
Integer.decode("123459"); // decimal
我可以知道它爲什麼被低估嗎? – slezica 2012-07-23 05:36:50
巨大雙倍? :) – dfb 2012-07-23 06:10:03
FWIW - 關於足夠的代表性,Java是靜態類型的,而且Number接口有些沒用,你或多或少必須知道你在提前分析什麼類型的小型數據。 – dfb 2012-07-23 06:16:39