mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-02 20:02:49 +08:00
fix PinyinComparator
This commit is contained in:
parent
ee85bd9596
commit
6c39380b6a
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023. looly(loolly@aliyun.com)
|
||||||
|
* Hutool is licensed under Mulan PSL v2.
|
||||||
|
* You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||||
|
* You may obtain a copy of Mulan PSL v2 at:
|
||||||
|
* https://license.coscl.org.cn/MulanPSL2
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the Mulan PSL v2 for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.dromara.hutool.core.comparator;
|
||||||
|
|
||||||
|
import java.text.Collator;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义语言环境 String 比较,可为自然语言文本构建搜索和排序例程。
|
||||||
|
*
|
||||||
|
* @author looly
|
||||||
|
*/
|
||||||
|
public class LocaleComparator extends NullComparator<String> {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构造
|
||||||
|
*
|
||||||
|
* @param nullGreater 是否{@code null}在后
|
||||||
|
* @param desiredLocale 语言环境
|
||||||
|
*/
|
||||||
|
public LocaleComparator(final boolean nullGreater, final Locale desiredLocale) {
|
||||||
|
super(nullGreater, Collator.getInstance(desiredLocale));
|
||||||
|
}
|
||||||
|
}
|
@ -12,9 +12,6 @@
|
|||||||
|
|
||||||
package org.dromara.hutool.core.comparator;
|
package org.dromara.hutool.core.comparator;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.text.Collator;
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -23,21 +20,22 @@ import java.util.Locale;
|
|||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
*/
|
*/
|
||||||
public class PinyinComparator implements Comparator<String>, Serializable {
|
public class PinyinComparator extends LocaleComparator {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
final Collator collator;
|
/**
|
||||||
|
* 构造,{@code null}最大,排在最后
|
||||||
|
*/
|
||||||
|
public PinyinComparator() {
|
||||||
|
this(true);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
|
*
|
||||||
|
* @param nullGreater 是否{@code null}最大,排在最后
|
||||||
*/
|
*/
|
||||||
public PinyinComparator() {
|
public PinyinComparator(final boolean nullGreater) {
|
||||||
collator = Collator.getInstance(Locale.CHINESE);
|
super(nullGreater, Locale.CHINESE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compare(final String o1, final String o2) {
|
|
||||||
return collator.compare(o1, o2);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user