我正在尝试检查对象数组是否包含特定字符串。
这是我对Product对象的构造函数:
public Product()
{
name = "No name yet";
demandRate = 0;
setupCost = 0;
unitCost = 0;
inventoryCost = 0;
sellingPrice = 0;
}
这是数组的初始化:
Product[] product = new Product[3];
我在Checking if long is in array和Look if an array has an specified object找到了类似的问题。所以我尝试了这段代码:
public boolean isAProduct(String nameOfProduct)
//Returns true if a name has been found otherwise returns false
{
boolean found = false;
int counter = 0;
while (!found && (counter < MAXNUMBEROFPRODUCTS))
{
if (Arrays.asList(product).contains(nameOfProduct))
{
found = true;
}
else
{
counter++;
}
}
return found;
}
但这不起作用,因为它允许我为产品输入两次相同的名称。所以我的问题是,我正在尝试甚至可能吗?如果没有,我怎么能解决这个问题?
非常感谢任何建议。
答案 0 :(得分:2)
您需要在Product
类中创建一个get产品名称的get方法,以便在数组的每次迭代中获取要检查的数据。你不能只是在不访问字符串的情况下将对象与字符串进行比较。
<强>溶液强>
在Product类中创建一个getter方法
public String getName()
{
return this.name;
}
迭代所有Product类并通过调用产品名称的getter方法来比较字符串
for(int i = 0; i < current_size_product; i++)
{
if(product[i].getName().contains(string))
//true
}