2D字符串数组(带有局部土耳其语字符)在Java中排序 [英] 2D string array(with local Turkish characters) sorting in java
本文介绍了2D字符串数组(带有局部土耳其语字符)在Java中排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个二维的字符串数组,就像:
i have a 2D array of string it is like:
gsdfsdf | awfdsf
asdasd | sjd
çsadsfd | kdjfkj
bsdmfbs | skfjef
ıfjdhsb | döjfn
zewkjf | skjfkj
iadsa | dfjdkj
我想根据第一列对其进行排序,因为您看到它具有本地(土耳其语)字符,并且在排序之后必须像这样:
i want to sort it according to first column as you see it has local(Turkish) characters, and after sorting it must be like:
asdasd | sjd
bsdmfbs | skfjef
çsadsfd | kdjfkj
gsdfsdf | awfdsf
ıfjdhsb | döjfn
iadsa | dfjdkj
zewkjf | skjfkj
有任何想法,教程或建议吗?
any idea, tutorial or advice?
推荐答案
应该改进比较器以进行null检查等.但这应该可以工作!
Comparator should be improved for null checking,.. etc. but this should work!
final String alphabet = "0123456789AaBbCcÇçDdEeFfGgĞğHhIıİiJjKkLlMmNnOoÖöPpQqRrSsŞşTtUuÜüVvWwXxYyZz";
SortedMap<String,String> map = new TreeMap(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int n = Math.min(o1.length(), o2.length());
int i=0;
while((i < n) && (o1.charAt(i) == o2.charAt(i))){
i++;
}
if(i==n){
return 0;
}
if(alphabet.indexOf(o1.charAt(i)) < alphabet.indexOf(o2.charAt(i))){
return -1;
}
return 1;
}
});
这篇关于2D字符串数组(带有局部土耳其语字符)在Java中排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文