问题
今天在stackoverflow看到一个有意思的问题。想在Java 中 把String 转为int.例如 输入 字符串 1234,期望输出 int 1234.
问题分析
字符串转int,首先是个数字的字符串才可以,如果要是一个随意的字符串必然要出现异常。
问题方案一
String myString = "1234";
int foo = Integer.parseInt(myString);
System.out.println("string 1234 to int "+foo);
//string 1234 to int 1234
NumberFormatException 异常处理
int foo;
try {
foo = Integer.parseInt(myString);
}
catch (NumberFormatException e)
{
foo = 0;
}
方案二
使用Java 8 与 guava
int foo = Optional.ofNullable("1234")
.map(Ints::tryParse)
.orElse(0);
方案三
使用common-lang NumberUtils
int num = NumberUtils.toInt("1234");
在无法转换的情况会输出 0