我已经从我的数据库中获取值并将其放入结果集中并将其显示在 JTable 中,但我面临一些排序问题,这是我的主键,例如A1,A2,A3 ....A10,A11。但是在我的JTable中,该主键列显示不正确。
A11 A10 A1 A2 A3 A4
A11应该在最后。有办法解决这个问题吗?
最佳答案
Strings
默认情况下按字母顺序排序。您需要实现自己的Comparator<String>
.
尝试下面的比较器
public class CustomComparator implements Comparator<String> {
@Override
public int compare(String str1, String str2) {
int num1 = Integer.parseInt(str1.substring(1,str1.length()));
int num2 = Integer.parseInt(str2.substring(1, str2.length()));
return num1 - num2;
}
}
使用您的输入运行
public static void main(String[] args) {
String[] a = {"A11","A10", "A1" ,"A2", "A3", "A4"};
Arrays.sort(a,new CustomComparator());
System.out.println(Arrays.asList(a).toString());
}
输出
[A1, A2, A3, A4, A10, A11]
关于java - 如何将从数据库(主键)获取的字符串值排序为表中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840220/