java语言将一个字符串集合按GBK编码(简体中文按拼音顺序)排序
/*
思路:由于java字符串排序默认为按Unicode编码排序,若想简体汉字按拼音排序,就要按GBK编码排序;首先建立方法比较两个字符串,将字符串用GBK编码转成byte数组,然后比较两个数组对应下标的大小关系,得出两个字符串的大小关系,然后按照这个比较大小的规则对整个集合进行排序。
*/
import java.io.UnsupportedEncodingException;
import java.util.List;
public class Tool {
/**
* 将字符串集合按GBK编码(简体字按拼音顺序)排序
* 常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等
* java默认Unicode,系统默认GBK
*/
public static int compare(String str1,String str2){
try {
byte[] b1 = str1.getBytes("GBK");
byte[] b2 = str2.getBytes("GBK");
int l1=b1.length;
int l2=b2.length;
int l=Math.min(l1, l2);
int k=0;
while(k<l){
byte bt1=b1[k];
byte bt2=b2[k];
if(bt1!=bt2)
return bt1-bt2;
k++;
}
return l1-l2;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return 0;
}
public static void sort(List<String> list){
int size=list.size();
if(size<=1)
return;
for(int i=1;i<size;i++){
for(int j=i;j>0;j--){
if(compare(list.get(j), list.get(j-1))<0){
String temp=list.get(j);
list.set(j, list.get(j-1));
list.set(j-1, temp);
}else{
break;
}
}
}
}
}
java语言将一个字符串集合按GBK编码(简体中文按拼音顺序)排序相关推荐
- Java中获取GBK编码汉字的拼音首字母(包括生僻字)
Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...
- java电话键盘字母数字转换_用Java语言将一个键盘输入的数字转化成中文输出
用Java语言将一个键盘输入的数字转化成中文输出 将一个键盘输入的数字转化成中文输出(例如:输入:1234567 输出:一百二拾三万四千五百六拾七)用java语言实现,,请编一段... 将一个键盘输入 ...
- mysql数据库sql汉字数字排序_MYSQL数据库UTF8编码使用汉字拼音第一个字母排序的方法...
MYSQL数据库UTF8编码使用汉字拼音第一个字母排序的方法 今天做网站时遇到了这样一个问题,有一个标签数据库,在管理标签时想按标签列的汉字拼音的第一个字母排序,这样人工查找的时候就很快可以看到: 于 ...
- c语言集合除去相同元素,使用C语言去掉字符串集合重复元素
有一种最直接的方法可以去掉一个集合中重复的元素,这种方法据说就是"交给下面去做",然而有时候,你自己动手去做一下也是不错的.如果交给下面去做,最直接的选择就是使用map,在java ...
- java语言基础及集合基础大总结
好好学java java知识分享/学习教程免费分享 关注 精彩内容 你所需要的java全套视频教程 你所需要的java电子图书 你所需要的大数据视频教程 你所需要的java练习项目 如 / 诗 近半个 ...
- java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?
这几天在各大平台上都看到过这样一些帖子,全都是关于String类型对象不可变的问题,当然现在也是找工作的准备时期,因此花了一部分时间对其进行整理一下. 想要完全了解String,在这里我们需要解决以下 ...
- [转载] 【Java】将一个字符串的字符排序,按ASCII表的顺序从小到大
参考链接: 在Java中搜索字符串中的字符和子字符串 将一个字符串的字符按ASCII表的顺序从小到大排序,如将字符串"asdafxcvMADb"排序为"ADMaabcdf ...
- java 拼音 排序_java代码按照中文拼音顺序排序_集合按照本地语言排序
java代码中集合list需要前段排序,如何安装中文字母顺序排,或者安装日语顺序排序 需要使用Collator类 代码如下: import java.text.Collator; import jav ...
- 对List集合中每个对象元素按时间顺序排序
首先创建一个实体类 package com.huawei.Test;import java.util.Date;/*** @author h84250472* @title: User$* @desc ...
- Java8——Stream流操作List排序_List集合中每个对象元素按时间顺序排序
一个学生类的实体类 @Data public class Student {private Long id;private String name;private int age;private Do ...
最新文章
- java与SPARK的使用的一个类似文章
- Letters比赛第六场1004 Unit Fraction Partition解题报告
- java里有没有 0的使用_请问有没有人有零基础Java基础习题?
- Java 14 中令人期待的五大新特性!
- div和div之间画横线,如何在两个div之间画一条线?
- matlab slice
- dlna和miracast可以共存吗_同屏镜像功能哪家强?DLNA miracast等技术解读
- matlab中阶跃函数算卷积,与冲激函数、阶跃函数的卷积.ppt
- 计算机设备如何巡检,计算机联锁设备巡检作业指导书.pdf
- Java中的23个设计模式 【结构型模式】 中的 【装饰模式】
- 《Sony Vegas Pro 12标准教程》—— 2.6 添加背景音乐
- android 仿写开发者头条,android高仿今日头条富文本编辑(发布文章)
- vue基础:ElementUI的表单
- IComponent2 Interface 学习
- Linux系统时间同步方法小结
- 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
- 如何用建好的stm32模板来创建Free-Rtos系统
- linux c代码更改时间间隔,在特定的时间间隔后发送控制c到一个linux命令?
- SpringMVC框架个人笔记之响应数据、文件上传
- 【Java】认识NPE问题 - 空指针异常