我想使用转换结果。我能这样做吗?
int num1 = Integer.parseInt(a.getText());
int num2 = Integer.parseInt(b.getText());
c.setText(String.valueOf(num1+num2));
答案 0 :(得分:1)
try
块中:try {
int num1 = Integer.parseInt(a.getText());
int num2 = Integer.parseInt(b.getText());
c.setText(String.valueOf(num1 + num2));
} catch(NumberFormatException ex) {
// Ignore?
// Handle?
ex.printStackTrace();
}
try
- catch
块:int num1;
try {
num1 = Integer.parseInt(a.getText());
} catch(NumberFormatException ex) {
// Ignore?
// Handle?
a.setText(0);
num1 = 0;
}
String
:int num1 = a.getText().matches("-?\\d+") ? Integer.parseInt(a.getText()) : 0 /* Arbitrary Default Value */;
这三个选项中的任何一个都可以起作用;具体的选择应取决于你正在努力实现的目标。
答案 1 :(得分:0)
唯一的结果是您已经获得Exception
。它告诉您该函数无法根据您的输入确定结果。例如:Integer.parseInt("a")
会引发NumberFormatException
,因为"a"
通常不会被识别为数字; Integer.parseInt(" 42")
会NumberFormatException
,因为" 42"
不是完全数字。你当然可以实现像
public static int parseIntOrFallback(String text, int fallback) {
try {
return Integer.parseInt(text);
} catch (NumberFormatException e) {
return fallback;
}
}
或尝试通过例如挽救输入调用trim()
或使用您自己的解析。这三者都非常具体针对个人用例,您没有深入解释。