当前位置: 首页 > 面试题库 >

Java数组排序UTF-8

苗征
2023-03-14
问题内容

我想排序一个,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

问题答案:

您应该使用Collat​​or类。

例如

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

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

Collections.sort(theList, lithuanianCollator);


 类似资料:
  • 问题内容: 有没有什么简便的方法可以按降序对数组进行排序,就像它们在Arrays类中如何按升序排序? 问题答案: 你可以使用它对所有对象进行排序 不能直接用于降序对原始数组进行排序。如果尝试Arrays.sort()通过传递由定义的反向 来调用该方法,则会抛出错误 找不到适合sort(int [],comparator)的方法 可以与“对象数组”(例如整数数组)一起使用,但不能与基本数组(例如整数

  • 主要内容:升序,降序我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。 升序 使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步: 导入 java.util.Arrays 包。 使用 Arrays.sort(数组名) 语法对数

  • 嗨,我目前有4个数组都持有不同的数据,我遇到的问题是我想按字母顺序对其中一个数组进行排序,通常我会这样做 其中数组将是我想按字母顺序排序的数组,但我需要数组一起排序。 比如说我的数组是这样的 我想根据Pet数组进行排序,我的输出应该是这样的,所有的第三个值现在都是第一个,第一个值现在是第三个(这比简化了很多,我的实际数组包含数千个输入) 有没有一种简单的方法可以做到这一点,我可以对一个数组进行排序

  • 问题内容: 我currentyl不知道如何对包含PHP中UTF-8编码字符串的数组进行排序。该数组来自LDAP服务器,因此通过数据库排序(不会有问题)不是解决方案。以下内容不适用于我的Windows开发计算机(尽管我认为这至少应该是一个可能的解决方案): 输出为: 这是完全废话。使用1252作为的代码页会提供另一种输出,但仍然是一个明显错误的输出: 有没有一种方法可以对具有UTF-8字符串语言环境

  • 问题内容: 我正在尝试制作一个由10个整数组成的程序,到目前为止,它们都具有随机值。 但是,现在我需要按从最低到最高的顺序对它们进行排序,然后将其打印到屏幕上,我该怎么做呢? (对一个程序这么小的代码感到抱歉,我对循环不好,只是开始使用Java) 问题答案: 在println之前添加一行,然后对数组进行排序

  • 本文向大家介绍java 对象数组排序,包括了java 对象数组排序的使用技巧和注意事项,需要的朋友参考一下 废话不多说直接奉上代码先: 另附上Arrays.sort用法:       1. 数字排序 int[] intArray = new int[] { 4, 1, 3, -23 };   Arrays.sort(intArray);   输出: [-23, 1, 3, 4]   2. 字符串排