如果用户未在EditText框中输入值,我试图将其设置为0(以防止崩溃错误NumberFormatException Invalid int:“”),该初始值设置为0,因为没有要读取的整数值,因为在这种情况下用户没有输入一个。

我最近尝试了很多方法:

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

10-08 05:43