我可以读取一个字符串,然后将其用作整数?

可能重复:
如何在Java中将字符串转换为int?

我的代码应该是读取字符串,然后采取相应的行动,但如果该字符串是一行数字,我需要这行作为一个完整的数字(一个int)而不是一个字符串anymore.c能做到这一点?


使用Integer.valueOf:

int i = Integer.valueOf(someString);

(还有其他选项。)


看一下静态方法Integer.parseInt(String string) 。 此方法过载,并且还能够读取除十进制系统之外的其他数字系统中的值。 如果string不能被解析为Integer,则该方法抛出一个NumberFormatException异常,该异常可以如下捕获:

string = "1234"
try {
   int i = Integer.parseInt(string);
} catch (NumberFormatException e) {
   System.err.println(string + " is not a number!");
}

除了Davewullxz所说的外,你还可以使用正则表达式来查明被测试的字符串是否与你的格式匹配

import java.util.regex.Pattern;
...

String value = "23423423";

if(Pattern.matches("^d+$", value)) {
   return Integer.valueOf(value);
}

使用正则表达式,你也可以恢复其他类型的数字,比如双打

String value = "23423423.33";
if(Pattern.matches("^d+$", value)) {
    System.out.println(Integer.valueOf(value));
}
else if(Pattern.matches("^d+.d+$", value)) {
    System.out.println(Double.valueOf(value));
}

我希望这将有助于解决您的问题。

编辑

此外,正如wullxz所建议的,您可以使用Integer.parseInt(String)而不是Integer.valueOf(String)parseInt返回intvalueOf返回Integer实例。 从性能角度来看,建议使用parseInt

链接地址: http://www.djcxy.com/p/20913.html

上一篇: Can I read a string and then use it as an integer?

下一篇: Get Value to Integer