如何在java中将字符串转换为整数以及android

时间:2015-10-25 08:44:31

标签: java android

我正在尝试将String转换为Integer。我已经使用了

int n1 = Integer.valueOf(s1,10);

我也试过

int n1 = Integer.parseInt(s1,10);

但我收到了错误

E/AndroidRuntime: FATAL EXCEPTION: main
E/AndroidRuntime: Process: com.example.anmol.calc, PID: 19430
E/AndroidRuntime: java.lang.NumberFormatException: Invalid int: ""
E/AndroidRuntime: at java.lang.Integer.invalidInt(Integer.java:138)
E/AndroidRuntime: at java.lang.Integer.parseInt(Integer.java:358)

我该如何解决?

1 个答案:

答案 0 :(得分:2)

你得到了

  

java.lang.NumberFormatException:无效的int:""

因为空String不是int。您可以测试String包含带正则表达式的数字(\\d+是一个或多个数字)。像,

int n1 = 0;
if (s1 != null && s1.matches("\\d+")) {
    n1 = Integer.parseInt(s1);
}

你可以用三元组写这个。像,

int n1 = (s1 == null || !s1.matches("\\d+")) ? 0 : Integer.parseInt(s1);