2

我在哪里可以得到一个智能数字解析器,它可以读取一个数字字符串,比如说......

  • 整数形式:-12345
  • 十进制形式:123.45
  • 指数形式:15e-24
  • 十六进制:#CAFEBABE
  • 二进制:b01100101

...并给我一个足够的代表(从一个byte如果它适合,直到一个GargantuanDouble如果它不适合)?

我现在正在考虑使用 Java(Android),所以如果是 Java,那就更好了;但我愿意从另一种语言移植一个足够小的库。

4

2 回答 2

3

假设您可以分隔标记,您可以使用Integer.decode()来解码数字。

(可选)负号和/或基数说明符(“0x”、“0X”、“#”或前导零)后面的字符序列被 Integer.parseInt 方法解析为具有指示的基数(10、16 , 或 8)。此字符序列必须表示正值,否则将引发 NumberFormatException。如果指定字符串的第一个字符是减号,则结果为否定。字符串中不允许有空格字符。

例如。

Integer.decode("0xabcf123"); // hex
Integer.decode("07651");     // octal
Integer.decode("123459");    // decimal
于 2012-07-23T06:51:35.887 回答
0

除了指数形式,您可以处理每种情况并使用 Integer.parseInt(String a, int radix);

于 2012-07-23T06:12:16.297 回答