Java 如何在忽略大小写的情况下比较arraylist和String?

Java 如何在忽略大小写的情况下比较arraylist和String?,java,string,arraylist,ignore-case,Java,String,Arraylist,Ignore Case,我收到一个错误消息,表示类型Dog的.equalsIgnoreCase未定义,是否有任何方法可以在数组列表中查找字符串,同时忽略大小写而不使用。equalsIgnoreCase public static int findDog(String toFind, ArrayList<Dog> dogs) { for (int i = 0 ; i < dogs.size() ; i++) { if (dogs.get(i

我收到一个错误消息,表示类型
Dog
.equalsIgnoreCase
未定义,是否有任何方法可以在
数组列表中查找
字符串
,同时忽略大小写而不使用
。equalsIgnoreCase

public static int findDog(String toFind, ArrayList<Dog> dogs)
      {
        for (int i = 0 ; i < dogs.size() ; i++)
        {
          if (dogs.get(i).equalsIgnoreCase(toFind))
          {
            return i;
          }
        }
        return -1;           
      }

您无法将
字符串
进行比较,假设
具有一些
字符串
属性,则可以使用以下方法进行比较:

示例:

if (dogs.get(i).getName().equalsIgnoreCase(toFind)){
       return i;
}

您无法将
字符串
进行比较,假设
具有一些
字符串
属性,则可以使用以下方法进行比较:

示例:

if (dogs.get(i).getName().equalsIgnoreCase(toFind)){
       return i;
}
在if循环中的get(i)之后添加.getName()

比如:if(dogs.get(i)…getName().equalsIgnoreCase(toFind))

在if循环中的get(i)之后添加.getName()


比如:if(dogs.get(i)…getName().equalsIgnoreCase(toFind))

请参见,
。equalsIgnoreCase逻辑将与Dog一起工作,但与您所做的不同。这是你需要做的

假设你想说,如果两条狗有相同的名字,那么它们是相同的

然后修改您的Dog类,如下所示:

public class Dog implements Comparable<Dog> {

   private String name;
   private double age;
   private double weight;

    public Dog(String name, double age, double weight) {
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getAge() {
        return age;
    }

    public void setAge(double age) {
        this.age = age;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }


    @Override
    public int compareTo(Dog anotherDogToCompare) {
        return this.getName().toLowerCase().compareTo(anotherDogToCompare.getName().toLowerCase());
    }
}

请参阅,
.equalsIgnoreCase逻辑
将与Dog一起工作,但绝对不会像您那样工作。这是你需要做的

假设你想说,如果两条狗有相同的名字,那么它们是相同的

然后修改您的Dog类,如下所示:

public class Dog implements Comparable<Dog> {

   private String name;
   private double age;
   private double weight;

    public Dog(String name, double age, double weight) {
        this.name = name;
        this.age = age;
        this.weight = weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getAge() {
        return age;
    }

    public void setAge(double age) {
        this.age = age;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }


    @Override
    public int compareTo(Dog anotherDogToCompare) {
        return this.getName().toLowerCase().compareTo(anotherDogToCompare.getName().toLowerCase());
    }
}

您应该如何比较
字符串
?在
Dog
中是否有您试图比较的字符串变量?也许您想要
dogs.get(i).getName()
dogs.get(i).toString()
与字符串进行比较,我猜它代表名称或其他属性?Dog是公共Dog(字符串名称,双年龄,双重量)的构造函数您应该如何比较
字符串
?在
Dog
中是否有您想要比较的字符串变量?也许您想要
dogs.get(i).getName()
dogs.get(i).toString()
与字符串进行比较,我想是代表名称或其他属性?Dog是公共Dog的构造函数(字符串名称,双倍年龄,双倍重量)谢谢。是的,狗有一个字符串属性,很抱歉没有在问题中指定@梅莉,没关系,只是更新了你的描述。你不必道歉:)谢谢你。是的,狗有一个字符串属性,很抱歉没有在问题中指定@梅莉,没关系,只是更新了你的描述。你不必道歉:)