使用 compareToIgnoreCase() 方法对字符串数组进行排序
Using compareToIgnoreCase() method in sorting String array
我的任务是实现 Comparable 接口并使用 compareTo 和 compareToIgnoreCase 方法根据电子邮件字符串对客户对象数组进行排序。这是我的构造函数的签名,
public Customer(String email, String firstName, String lastName)
这是我的方法,
public int compareTo(String email) {
return this.email.compareToIgnoreCase(email);
}
我理解应该 return 1、-1 或 0,具体取决于第一个字符串是否大于、小于或等于第二个字符串。
现在我不知道应该如何使用这种方法对我的数组进行排序。 Arrays.sort(客户)什么都不做。
在此先感谢您能给我的任何帮助。
您希望能够对一组客户进行排序,但您的 compareTo 正在将客户与电子邮件进行比较。如果你改成这样,排序功能应该可以正常工作:
@Override
public int compareTo(Customer cust) {
return this.email.compareToIgnoreCase(cust.email);
}
还要确保在 Customer
class 声明中实现接口 Comparable<Customer>
。
我的任务是实现 Comparable 接口并使用 compareTo 和 compareToIgnoreCase 方法根据电子邮件字符串对客户对象数组进行排序。这是我的构造函数的签名,
public Customer(String email, String firstName, String lastName)
这是我的方法,
public int compareTo(String email) {
return this.email.compareToIgnoreCase(email);
}
我理解应该 return 1、-1 或 0,具体取决于第一个字符串是否大于、小于或等于第二个字符串。
现在我不知道应该如何使用这种方法对我的数组进行排序。 Arrays.sort(客户)什么都不做。
在此先感谢您能给我的任何帮助。
您希望能够对一组客户进行排序,但您的 compareTo 正在将客户与电子邮件进行比较。如果你改成这样,排序功能应该可以正常工作:
@Override
public int compareTo(Customer cust) {
return this.email.compareToIgnoreCase(cust.email);
}
还要确保在 Customer
class 声明中实现接口 Comparable<Customer>
。