我写了一个计算器类型的应用程序。我的伙伴们发现,只在 's 中输入一个小数点editText
会使应用程序崩溃。十进制数和整数工作正常,但.
输入 's 时出现数字格式异常。
我想检查一个单曲.
是否已放置在 中editText
,以便我显示一个 toast,告诉用户停止尝试使应用程序崩溃。
我的问题是 a.
没有数值...
我写了一个计算器类型的应用程序。我的伙伴们发现,只在 's 中输入一个小数点editText
会使应用程序崩溃。十进制数和整数工作正常,但.
输入 's 时出现数字格式异常。
我想检查一个单曲.
是否已放置在 中editText
,以便我显示一个 toast,告诉用户停止尝试使应用程序崩溃。
我的问题是 a.
没有数值...
您可以将其包装在try/catch
解析文本时无论如何都应该完成的内容中。所以像
try
{
int someInt = Integer.parseInt(et.getText().toString());
// other code
}
catch (NumberFormatException e)
{
// notify user with Toast, alert, etc...
}
这样,它将防止任何数字格式异常,并使代码以后更可重用。
您可以通过以下方式将 .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