簡體   English   中英

Java:Java 的 localeCompare() 替代品是什么?

[英]Java: What is Java's alternative to JavaScript's localeCompare()?

我正在嘗試對Java中的JSONObject數組進行排序。 有人可以告訴我如何根據Java中的locale進行排序,類似於 JavaScript 的localeCompare()嗎?

在 JavaScript 中,我們可以像下面這樣進行語言環境排序, arr.sort( ( a, b ) => a.data[ "nested-name" ].localeCompare(b.data[ "nested-name" ]) )

我想在 Java 中進行語言環境比較排序。

您可以使用Collator器:

Collator collator = Collator.getInstance();

Arrays.sort(array, (JSONObject o1, JSONObject o2) ->
                collator.compare(o1.get("data"), o2.get("data")));

下面是一個完整的示例,其中包含一個整理器,該整理器使用默認語言環境根據data屬性比較 JSON 個對象的數組:

import org.json.JSONObject;

import java.text.Collator;
import java.util.Arrays;

public class LocaleCompareTest {
    public static void main(String[] args) {
        JSONObject a = new JSONObject();
        a.put("data", "a");

        JSONObject b = new JSONObject();
        b.put("data", "b");

        JSONObject[] array = new JSONObject[]{b, a};

        Collator collator = Collator.getInstance();

        Arrays.sort(array, (JSONObject o1, JSONObject o2) ->
                collator.compare(o1.get("data"), o2.get("data")));

        System.out.println(Arrays.toString(array));
    }
}

這會產生以下 output:

[{"data":"a"}, {"data":"b"}]

有關如何為所需的語言環境和整理規則配置整理器的更多信息,請參閱Javadoc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM