可能重复:
如何在 Java 中将字符串转换为 int?
我的代码应该读取字符串然后采取相应的操作,但是如果该字符串是一行数字,我需要这一行作为一个完整的数字(一个 int)而不是一个字符串。可以这样做吗?
可能重复:
如何在 Java 中将字符串转换为 int?
我的代码应该读取字符串然后采取相应的操作,但是如果该字符串是一行数字,我需要这一行作为一个完整的数字(一个 int)而不是一个字符串。可以这样做吗?
看静态方法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!");
}
除了Dave和wullxz所说的之外,您还可以使用正则表达式来确定测试的字符串是否与您的格式匹配,例如
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
返回int
而valueOf
返回Integer
实例。从性能的角度parseInt
推荐。