相关疑难解决方法(0)

Java排序规则忽略了空间

我最近意识到,Java Collat​​ion似乎忽略了空间.

我有以下术语列表:

Amman Jost 
Ammann Heinrich 
Ammanner Josef 
Bär Walter 
Bare Werner 
Barr Burt 
Barraud Maurice
Run Code Online (Sandbox Code Playgroud)

上面的订单反映了德国的所需订单,即占用空间.但是,Java Collat​​ion使用

Collator collator = Collator.getInstance(Locale.GERMANY);
Collections.sort(values, collator);
Run Code Online (Sandbox Code Playgroud)

给我以下顺序:

Amman Jost
Ammanner Josef
Ammann Heinrich
Bare Werner
Barraud Maurice
Barr Burt
Bär Walter
Run Code Online (Sandbox Code Playgroud)

上面的结果实际上并不是我所期望的,因为空间没有被考虑(看起来像这里描述的情况:维基百科字母顺序).

这是否意味着,Java Collat​​ion不适用于此类用例,或者我在这里做错了什么?有没有办法让Java Collat​​ion空间有意识?

我很乐意提出任何意见或建议.

java collation

16
推荐指数
1
解决办法
2472
查看次数

整理强度和当地语言关系

我从Collat​​or的Javadoc中读到了以下内容.

"语言特征的优势的确切分配取决于语言环境.例如,在捷克语中,"e"和"f"被认为是主要差异,而"e"和"ê"是次要差异,"e"和"E"是三级差异,"e"和"e"是相同的."

这是否意味着我应该根据我使用的语言设置STRENGTH?如果是这样,有人可以建议语言环境的默认值:us_en,us_es,ca_fr,spain_spanish,chile_spanish,portuguese

localization collation internationalization

10
推荐指数
1
解决办法
1269
查看次数

Java - 像Windows资源管理器一样排序字符串

我想在另一个问题上使用Sander Pham建议的代码.我需要像Windows资源管理器那样对字符串名称的java ArrayList进行排序.他的代码适用于一切,但只针对一个问题.我本来希望对这个问题发表评论,但我需要更多的声誉点来评论.无论如何......他建议使用自定义比较器实现的类并使用它来比较字符串名称.这是该类的代码:

class IntuitiveStringComparator implements Comparator<String>
{
    private String str1, str2;
    private int pos1, pos2, len1, len2;

    public int compare(String s1, String s2)
    {
        str1 = s1;
        str2 = s2;
        len1 = str1.length();
        len2 = str2.length();
        pos1 = pos2 = 0;

        int result = 0;
        while (result == 0 && pos1 < len1 && pos2 < len2)
        {
            char ch1 = str1.charAt(pos1);
            char ch2 = str2.charAt(pos2);

            if (Character.isDigit(ch1))
            {
                result = Character.isDigit(ch2) ? compareNumbers() : -1;
            }
            else if …
Run Code Online (Sandbox Code Playgroud)

java windows sorting explorer comparator

3
推荐指数
1
解决办法
2513
查看次数