我正在尝试将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)
我该如何解决?
答案 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);