import java.util.Comparator;
public class PinyinComparator implements Comparator {
@Override
public int compare(PersonBean lhs, PersonBean rhs) {
return sort(lhs, rhs);
}
private int sort(PersonBean lhs, PersonBean rhs) {
// // 获取ascii值
// int lhs_ascii = lhs.getFirstPinYin().toUpperCase().charAt(0);
// int rhs_ascii = rhs.getFirstPinYin().toUpperCase().charAt(0);
// // 判断若不是字母,则排在字母之后
// if (lhs_ascii < 65 || lhs_ascii > 90)
// return 1;
// else if (rhs_ascii < 65 || rhs_ascii > 90)
// return -1;
// else
// return lhs.getPinYin().compareTo(rhs.getPinYin());
if (lhs.getFirstPinYin().equals(rhs.getFirstPinYin())) {
return lhs.getPinYin().compareTo(rhs.getPinYin());
} else {
if ("#".equals(lhs.getFirstPinYin())) {
return 1;
} else if ("#".equals(rhs.getFirstPinYin())) {
return -1;
}
return lhs.getFirstPinYin().compareTo(rhs.getFirstPinYin());
}
}
public class PersonBean {
private String Name;
private String PinYin;
private String FirstPinYin;
private Customer customer;
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getPinYin() {
return PinYin;
}
public void setPinYin(String pinYin) {
PinYin = pinYin;
}
public String getFirstPinYin() {
return FirstPinYin;
}
public void setFirstPinYin(String firstPinYin) {
FirstPinYin = firstPinYin;
}
public String toString() {
return "姓名:" + getName() + " 拼音:" + getPinYin() + " 首字母:"
+ getFirstPinYin();
}
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}