gpt4 book ai didi

Java 数组排序 UTF-8

转载 作者:IT老高 更新时间:2023-10-28 20:52:40 26 4
gpt4 key购买 nike

我想对 ArrayList<String> 进行排序但问题是我的母语字符 - 我的字母表是这样的:a, ą, b, c, č, d, e, f ... z, ž .如您所见 z字符是倒数第二个,ą在字母表中排名第二,所以在我对数组进行排序后,它的排序不正确。我所有的母语字符都移到数组的末尾。示例:

package lt;

import java.util.ArrayList;
import java.util.Collections;

public class test {
public static void main(String[] args) {
List<String> items = new ArrayList<>();
items.add("bbc");
items.add("ąbc");
items.add("abc");
items.add("zzz");

System.out.println("Unsorted: ");
for(String str : items) {
System.out.println(str);
}

Collections.sort(items);
System.out.println();

System.out.println("Sorted: ");
for(String str : items) {
System.out.println(str);
}
}
}

输出:

Unsorted: 
bbc
ąbc
abc
zzz

Sorted:
abc
bbc
zzz
ąbc

应该是:

Sorted:
abc
ąbc
bbc
zzz

最佳答案

您应该使用 Collator类。

例如

Locale lithuanian = new Locale("lt_LT");
Collator lithuanianCollator = Collator.getInstance(lithuanian);

然后使用此整理器对集合进行排序

Collections.sort(theList, lithuanianCollator);

关于Java 数组排序 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9261305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com