java实现集合根据中文拼音排序
Collections提供了sort排序方法,可以将集合内容根据拼音首字母进行排序。
public static void main(String[] args){
Comparator<Object> com = Collator.getInstance(java.util.Locale.CHINA);
String[] arr = {"上海","北京","安徽","湖南","陕西"};
List<String> list = Arrays.asList(arr);
Collections.sort(list, com);
System.out.print(list);
}
输出结果:[安徽, 北京, 湖南, 陕西, 上海]
SQL实现根据中文拼音排序
MySQL提供了多种排序方法,如下可根据字符笔画、部首、拼音多种方式进行排序。
# mysql
SELECT * FROM student ORDER BY CONVERT(NAME USING gbk) ASC
#oracle
#按照笔画排序
SELECT * FROM student ORDER BY nlssort(NAME,'NLS_SORT=SCHINESE_STROKE_M');
#按照部首排序
select * from student order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
#按照拼音排序
select * from student order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
JS实现下拉选select根据拼音排序
前端JS实现排序,select下拉框内容需要按照字符的拼音首字母进行排序,如下需要先获取到select下拉框的内容options,然后便利获取每个option,然后进行对比排序,最后将排序后的option按顺序放入集合,返回给select。
function compareFunction(param1,param2){
var x = param1.text;
var y = param2.text;
return x.localeCompare(y,"zh");
}
function op(){
var v;
var t;
}
function sortOption(){
var obj = document.getElementById("#selectId");
var arr = new Array();
for(var i=0;i<obj.options.length;i++){
var ops = new op();
ops.v = obj.options[i].value;
ops.t = obj.options[i].text;
arr.push(ops);
}
arr.sort(compareFunction);
for(var j=0;j<arr.length;j++){
obj.options[j].value = arr[j].value;
obj.options[j].text = arr[j].text;
}
}
##然后将options放入到select标签中
<select id="selectId">
<c:forEach items="${categoryList}" var="category" varStatus="status">
<option value ="${category.value}">${category.text}</option>
</c:forEach>
</select>