编辑:澄清将任何有效的数字编码从字符串转换为数字
对于所有接受的整数格式,尤其是那些在 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/