[英]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.