0

我写了一个计算器类型的应用程序。我的伙伴们发现,只在 's 中输入一个小数点editText会使应用程序崩溃。十进制数和整数工作正常,但.输入 's 时出现数字格式异常。

我想检查一个单曲.是否已放置在 中editText,以便我显示一个 toast,告诉用户停止尝试使应用程序崩溃。

我的问题是 a.没有数值...

4

2 回答 2

1

您可以将其包装在try/catch解析文本时无论如何都应该完成的内容中。所以像

    try
    {
        int someInt = Integer.parseInt(et.getText().toString());
        // other code
    }
    catch (NumberFormatException e)
    {
        // notify user with Toast, alert, etc...
    }

这样,它将防止任何数字格式异常,并使代码以后更可重用。

于 2013-11-14T23:36:55.357 回答
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
于 2013-11-15T03:00:19.983 回答