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

用非西方字符对字符串排序

巫马心水
2023-03-14
问题内容

我想打印所有可用语言的排序波兰语名称。

import java.util.*;

public class Tmp
{
  public static void main(String... args)
  {
    Locale.setDefault(new Locale("pl","PL"));
    Locale[] locales = Locale.getAvailableLocales();
    ArrayList<String> langs = new ArrayList<String>();
    for(Locale loc: locales) {
      String  lng = loc.getDisplayLanguage();
      if(!lng.trim().equals("") && ! langs.contains(lng)){
        langs.add(lng);
      }
    }
    Collections.sort(langs);
    for(String str: langs){
      System.out.println(str);
    }
  }
}

不幸的是我对排序部分有疑问。输出为:

:
:
kataloński
koreański
litewski
macedoński
:
:
węgierski
włoski
łotewski

不幸的是,波兰语的ł出现l前后,m因此输出应为:

:
:
kataloński
koreański
litewski
łotewski
macedoński
:
:
węgierski
włoski

我该怎么做?是否存在一种通用的非语言相关的方法(例如,我现在要显示此方法,并使用另一种排序规则以另一种语言进行排序)。


问题答案:

您应该将整理器传递给sort方法:

// sort according to default locale
Collections.sort(langs, Collator.getInstance());

默认的排序顺序是由字符串中的Unicode代码点定义的,并且在任何语言中都不是正确的字母顺序。



 类似资料:
  • 本文向大家介绍python字符串排序方法,包括了python字符串排序方法的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式简述了Python实现字符串排序的方法,是Python程序设计中一个非常实用的技巧。分享给大家供大家参考之用。具体方法如下: 一般情况下,python中对一个字符串排序相当麻烦: 一、python中的字符串类型是不允许直接改变元素的。必须先把要排序的字符串放在容器里,如

  • 我的代码中有什么错误? 给定一个由小写字母组成的字符串,请按升序排列其所有字母。 输入:输入的第一行包含T,表示测试用例的数量。然后是每个测试用例的描述。测试用例的第一行包含表示字符串长度的正整数N。第二行包含字符串。 输出:对于每个测试用例,输出排序后的字符串。 约束条件: 对于输入: 输出: 预期输出:

  • 本文向大家介绍python清除字符串里非字母字符的方法,包括了python清除字符串里非字母字符的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python清除字符串里非字母字符的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 本文向大家介绍python清除字符串里非数字字符的方法,包括了python清除字符串里非数字字符的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 我得到的任务是从文本文件或字符串中删除所有非数字字符,包括空格,然后在旧字符旁边打印新结果,例如: 之前: 后: 由于我是初学者,所以我不知道从哪里开始。请帮忙 问题答案: 最简单的方法是使用正则表达式

  • 问题内容: 我目前正在做一个数据转换项目,需要从字符串中剥离所有字母字符。不幸的是,由于我们不拥有源计算机,因此我无法创建或使用函数,从而使我无法通过搜索以前的帖子找到的方法。 在select语句中执行此操作的最佳方法是什么?速度不是一个太大的问题,因为它只能运行30,000左右左右的记录,而且是一次过的声明。 问题答案: RichardTheKiwi的脚本中用于无交叉选择的选择中的函数,还添加了