我在哪里可以得到一个智能数字解析器,它可以读取一个数字字符串,比如说......
- 整数形式:-12345
- 十进制形式:123.45
- 指数形式:15e-24
- 十六进制:#CAFEBABE
- 二进制:b01100101
...并给我一个足够的代表(从一个byte
如果它适合,直到一个GargantuanDouble
如果它不适合)?
我现在正在考虑使用 Java(Android),所以如果是 Java,那就更好了;但我愿意从另一种语言移植一个足够小的库。
假设您可以分隔标记,您可以使用Integer.decode()来解码数字。
(可选)负号和/或基数说明符(“0x”、“0X”、“#”或前导零)后面的字符序列被 Integer.parseInt 方法解析为具有指示的基数(10、16 , 或 8)。此字符序列必须表示正值,否则将引发 NumberFormatException。如果指定字符串的第一个字符是减号,则结果为否定。字符串中不允许有空格字符。
例如。
Integer.decode("0xabcf123"); // hex
Integer.decode("07651"); // octal
Integer.decode("123459"); // decimal
除了指数形式,您可以处理每种情况并使用 Integer.parseInt(String a, int radix);