前后端分别实现集合根据中文拼音排序

14 篇文章 0 订阅
6 篇文章 0 订阅

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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值