【发布时间】:2019-03-09 16:28:00
【问题描述】:
我正在尝试使用 .equals() 将字符串与对象属性进行比较,但即使条件为真,该条件仍会失败。 我尝试使用 trim() 去除尾随空格,但仍然失败。
这是我的代码:
if (status) {
inventoryList = allInventory.getInventory();
assert assetId != null;
for (Inventory inventory : inventoryList) {
if (assetId.trim().equals(inventory.getProductCode().trim())) {
//get the current quantity that exists
new_quantity.setValue(0);
new_quantity.setMaxValue(inventory.getQuantity());
inventoryId = inventory.getId();
return;
} else {
// new_quantity.setVisibility(View.GONE);
decrement.setEnabled(false);
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Product not found ");
// prevent cancel of AlertDialog on click of back button and outside touch
alert.setCancelable(false);
alert.setMessage("Product is not in inventory. Do you want to continue scanning?");
alert.setNegativeButton("No", (dialog, which) -> {
onBackPressed();
dialog.dismiss();
}
);
alert.setPositiveButton("Yes", (dialog, which) -> {
Intent scanAsset = new Intent(this, ScanActivity.class);
scanAsset.putExtra("building", building);
scanAsset.putExtra("room", room);
scanAsset.putExtra("department", depart);
scanAsset.putExtra("TAG", "E");
startActivity(scanAsset);
dialog.dismiss();
});
AlertDialog dialog = alert.create();
dialog.show();
}
}
【问题讨论】:
-
几点注意事项: 1) 具体是哪一行遇到问题?抱歉,我不会解析这段代码的整个上下文来尝试帮助解决一个简单的
.equals()问题。 2)您确定要比较两个字符串吗?如果一个对象不是字符串,它将始终是false。 3) 您也可以尝试在您的自定义对象上覆盖equals()(如果您正在使用一个),这样您就可以比较两个对象,而无需将一个对象转换为String。如果您在这里没有使用自定义对象,则绝对不建议这样做。
标签: java android string object comparison