java - 将字符串转换为数字,Java

标签 java string numbers

编辑:澄清将任何有效的数字编码从字符串转换为数字

对于所有接受的整数格式,尤其是那些在 Integer.parseInt 下抛出 NumberFormatException 的格式,如何将字符串转换为数字,比如仅针对整数。例如代码

...
int i = 0xff;
System.out.println(i);
String s = "0xff";
System.out.println( Integer.parseInt(s) );
....

将在第四行抛出 NumberFormatException,即使该字符串显然是十六进制整数的有效编码。我们可以假设我们已经知道编码是一个有效的数字,比如通过对照正则表达式检查它。最好也检查溢出(就像 Integer.parseInt 那样),但如果必须作为一个单独的步骤来完成也没关系。

我可以遍历每个数字并手动计算合成值,但这相当困难。有没有更好的办法?

编辑: 很多人针对十六进制回答这个问题,这很好,但不完全是我要问的(这是我的错,我以十六进制为例)。我想知道是否有办法解码所有有效的 java 数字。 Long.decode 非常适合捕捉十六进制,但它在

上失败了
222222L

这是一个完全有效的 long。我是否必须分别捕获每种不同的数字格式?我假设您已经使用正则表达式来判断它是什么类别的数字,即区分 float 、整数等。

最佳答案

你可以做

System.out.println(Integer.decode(s));

关于java - 将字符串转换为数字,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397449/

相关文章:

java - 在 Javas 抽象表模型中显示某些列

c++ - 没有优先级且左结合的字符串计算器

Java String 完成数学求和

swift - 手指触摸屏幕的数量(Swift 2.0)

mysql - 如何从 mysqldump 插入 float

java - 适用于早期 Java 版本的 Sun Java 教程?

java - 为什么 onClick 不触发拖动监听器,但长按可以正常工作?[android]

Ruby 在 unicode 字符串中插入变量

Java RMI 异常错误

javascript - 单反斜杠到双反斜杠的转换