java字符串字母排序_java-如何按字符串值(波斯字母)对列表排序?

我有一个带有两个字段的学生列表(名称和数字),我想按名称(波斯名称)对列表进行排序,但是当我使用Collections.sort对列表进行排序时,某些波斯字母(例如“?”和; “?”和“?”& …

???结果是:“?”,“?”,“?”

???但必须为:“?”,“?”,“?”

这是我的代码:

public class Student {

private String name;

private int number;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getNumber() {

return number;

}

public void setNumber(int number) {

this.number = number;

}

@Override

public String toString() {

return "Student{" +

"name='" + name + '\'' +

", number=" + number +

'}';

}

}

公共班级主要{

public static void main(String[] args) {

List studentList = new ArrayList();

Student temp1 = new Student();

temp1.setName("?");

temp1.setNumber(5);

Student temp2 = new Student();

temp2.setName("?");

temp2.setNumber(4);

Student temp3 = new Student();

temp3.setName("?");

temp3.setNumber(3);

studentList.add(temp1);

studentList.add(temp2);

studentList.add(temp3);

// before sort

System.out.println("before sort");

for(Student student : studentList){

System.out.println("Student name: " + student.getName());

}

Locale locale = new Locale("fa");

System.out.println("--------------------");

System.out.println("Language: " + locale.getDisplayLanguage());

System.out.println("--------------------");

if (studentList.size() > 0) {

Collections.sort(studentList, new Comparator() {

@Override

public int compare(final Student object1, final Student object2) {

return Collator.getInstance(locale).compare(object1.getName(), object2.getName());

}

} );

}

// after sort

System.out.println("after sort");

for(Student student : studentList){

System.out.println("Student name: " + student.getName());

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值