android - 为什么此代码抛出 NumberFormatException Invalid int : ""?

标签 android android-edittext numberformatexception

如果用户没有在 EditText 框中输入值,我会尝试将其设置为 0(以防止崩溃错误 NumberFormatException Invalid int: ""),假设是因为没有可读取的整数值,因为在这种情况下用户没有输入。

我最近尝试了很多事情:

String boozeAmount = boozeConsumed.getText().toString();

        if (boozeAmount == "" || boozeAmount == null){
            boozeConsumed.setText("0");
            boozeAmount = boozeConsumed.getText().toString();
        }
        int boozeOz = Integer.parseInt(boozeAmount) * 12;
        double beerCalc = boozeOz * 4 * 0.075;

但它似乎仍然会抛出同样的错误,不知道为什么 int 值没有被设置为 0?

抛出错误

int boozeOz = Integer.parseInt(boozeAmount) * 12;

最佳答案

if (boozeAmount == "" || boozeAmount == null){

从您的解释中可以很容易地推断出这个特定的 if 语句返回 true,这就是您的字符串值未设置为“0”的原因。

Java 中的字符串不是原始字符串,即它们不能与比较器 == 进行比较。 您需要使用方法 equals 来比较字符串,如 boozeAmount.equals("")

Apache Commons 有一个 StringUtils可以检查字符串是否为 null 或空的实用程序。 查看 isEmptyisBlank

关于android - 为什么此代码抛出 NumberFormatException Invalid int : ""?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896610/

相关文章:

android - 如何在android中添加双击按钮

android - 需要为 EditText 长触而不是 ActionMode 自定义弹出窗口

Android Cursor 在 EditText View 中看起来太细了,android :gravity ='right'

java - 单击按钮后我的应用程序崩溃

java - 忽略手机静音模式

android - 使用 google_sign_in 插件进行 flutter 时 Gradle 构建失败

android - 执行 POST 请求,直到 Android 上的 Volley 网络连接可用

java - 软键盘覆盖 PopupWindow 中的 EditText

java - 无法将 CSV 值解析为 Double

java - 将十六进制颜色值 (#ffffff) 转换为整数值