我写了一个计算器类型的应用程序。我的伙伴发现只在editText
中输入单个小数点会导致应用程序崩溃。十进制数和整数工作正常,但在输入.
时我得到一个数字格式异常。
我想检查一个.
是否已放置在editText
中,以便我显示一个告诉用户停止尝试使应用崩溃的Toast。
我的问题是.
没有数值......
答案 0 :(得分:1)
您可以将其包装在try/catch
中,在解析文本时无论如何都应该这样做。像
try
{
int someInt = Integer.parseInt(et.getText().toString());
// other code
}
catch (NumberFormatException e)
{
// notify user with Toast, alert, etc...
}
这样它可以防止任何数字格式异常,并使代码在以后更加可重用。
答案 1 :(得分:0)
您可以通过以下方式将.1视为0.1。
String text = et.getText().toString();
int len = text.length();
// Do noting if edit text just contains a "." without numbers
if(len==0 || (len==1 && text.charAt(0).equals(".")))
return;
if(text.charAt(0).equals(".") && text.length() > 1) {
text = "0" + text;
}
// Do your parsing and calculations