問題
今天在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