Java - 检查对象数组是否包含某个字符串

时间:2014-06-06 04:01:45

标签: java arrays class object

我正在尝试检查对象数组是否包含特定字符串。

这是我对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 arrayLook 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;
    }

但这不起作用,因为它允许我为产品输入两次相同的名称。所以我的问题是,我正在尝试甚至可能吗?如果没有,我怎么能解决这个问题?

非常感谢任何建议。

1 个答案:

答案 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
}