如果用户未在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或为空。
检出
isEmpty
和isBlank
。