package test.HanziPaixu;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Collections;
class Person{
private int id;
private String name;
public Person(int id, String name) {
super();
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString()
{
return this.id + " " + this.name;
}
};
/**
* @Title: SortChineseName.java
* @Description: 中文字符排序
* @Function: 中文字符排序
* @Copyright: Copyright (c) 2012-11-19
* @Version 0.1
* 该接口用于对象与对象间的比较,返回值意味着这两对象之间的大小关系。
* -1代表前者小,0代表两者相等,1代表前者大。
*/
class SortChineseName implements Comparator<Person>{
//这句话是关键
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
@Override
public int compare(Person o1, Person o2) {
if (cmp.compare(o1.getName(), o2.getName())>0){
return 1;
}else if (cmp.compare(o1.getName(), o2.getName())<0){
return -1;
}
return 0;
}
};
public class HanziPaixuTest {
public static void main(String args[]){
List<Person> list = new ArrayList<Person>();
Person p = new Person(1,"安全");
list.add(p);
p = new Person(2,"保罗");
list.add(p);
p = new Person(3,"秋思");
list.add(p);
p = new Person(4,"本司");
list.add(p);
//正序
Collections.sort(list, new SortChineseName());
System.out.println("中文名称从小到大正序排列:");
for (Person pp:list){
System.out.println(pp);
}
//倒序
Collections.reverse(list);
System.out.println("中文名称从大到小倒序排列:");
for (Person pp:list){
System.out.println(pp);
}
Collections.sort(list,Collections.reverseOrder(new SortChineseName()));
System.out.println("中文名称倒序排列:");
for (Person pp:list){
System.out.println(pp);
}
}
};
分享到:
相关推荐
标签进一步明确了关键概念,包括"汉字笔画排序"、"java汉字笔画排序"、"java汉字按照笔画排序"、"汉字按照笔画排序"和"中文笔画排序"。这些标签强调了该话题的特定技术点,即使用Java语言对中文字符进行笔画计数并...
在Microsoft Foundation Classes (MFC)库中,进行汉字排序是一个常见的需求,特别是在处理中文数据时。MFC提供了丰富的类和函数来支持C++编程,它为Windows应用程序开发提供了一种结构化的方式。在这个主题中,我们...
在这个例子中,`@OrderBy`注解使得Hibernate在查询`Article`时,根据`title`字段的GBK中文排序规则进行排序。 另外,提供的`GBKOrder.java`文件可能是实现自定义排序策略的类。在Hibernate中,可以通过实现`...
在iOS开发中,有时我们需要对汉字进行按照拼音首字母的排序,这在处理中文数据时非常常见,例如在创建联系人列表或者构建中文词典应用时。本篇将详细介绍如何利用第三方类库来实现这一功能。 首先,我们需要理解...
在这个例子中,我们首先创建了一个`Collator`实例,指定了`Locale.CHINA`,这样排序规则就会按照中文的习惯进行。然后,通过`setStrength()`方法设置排序强度,这里我们选择了`PRIMARY`,这意味着它将忽略字符的大小...
一个关于EXTJs 表格 中文排序的例子
以下是如何使用`pinyin4j`进行中文排序的详细步骤: 1. **添加依赖**:首先,你需要在项目中引入`pinyin4j`库。如果你的项目是Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml <groupId>...
4. **处理特殊情况**:中文排序中,有些特殊情况需要考虑,比如数字、符号、全角/半角字符的处理,以及同音字的排列顺序。对于这些情况,可以在比较函数中添加额外的逻辑。 以下是一个简单的示例代码,展示了如何...
通过`CONVERT`函数转换字符集,或创建自定义的排序规则,可以有效地解决中文排序的问题。在实际操作中,应结合具体环境和需求选择合适的方法,确保数据的正确性和一致性。希望这些信息对理解和处理MySQL中的中文排序...
标题提到的“中文数组按拼音排序代码”是一个解决这个问题的方法,它通常涉及到将中文字符转换为其对应的拼音,然后再进行排序。 首先,我们要理解Python3如何处理字符串。在Python3中,字符串是以Unicode编码存储...
在Android开发中,有时我们需要将汉字转换为对应的拼音,以便进行一些特定的处理,比如搜索、排序或语音合成。这个过程被称为汉字转拼音。在"Android汉字转拼音例子"中,开发者利用了一个第三方库来实现这个功能。接...
3. **JS调用**:这个例子中提到了JS文本排序,意味着易语言代码可能通过调用JavaScript引擎来进行特定的排序操作。这可能是为了利用JavaScript在处理大量数据时的性能优势。在易语言中,实现跨语言调用通常需要使用...
本篇文章将深入探讨如何实现`dataGrid`中的中文排序,并结合提供的文件`SortUtil.txt`和`用法.txt`来讲解相关代码和字符集处理。 在Flex中,`dataGrid`的排序通常通过`sortField`和`sortOrder`属性或`sort`方法来...
在这个特定的场景中,我们关注的是"基础汉字笔画排序",这是一个涉及到中文字符处理的特殊问题。在这个"未整理备份"的项目中,可能包含的是旧版代码,用于实现汉字按照笔画顺序进行排序的算法。 首先,我们要理解...
拼音排序是最常用的中文排序方式之一,它按照汉字的拼音字母顺序进行排列。这种排序方式简单直观,易于理解和使用。 **示例代码:** ```sql SQL> SELECT * FROM test ORDER BY NLSSORT(name, 'NLS_SORT=SCHINESE_...
对于中文,它会根据汉字的拼音来进行排序,这正是我们需要的中文排序方式。 接下来,我们将介绍如何在JavaScript中结合使用Array.sort()和localeCompare来实现中文排序。Array.sort()方法可以接受一个可选的比较...
总的来说,表格拼音列排序是一个实用的工具,它结合了汉字到拼音的转换技术和表格排序功能,使我们在处理中文数据时能够更加便捷。了解并掌握这一技能,对于从事数据分析、项目管理以及任何需要处理汉字数据的工作都...
这个"文本数组排序.zip"的易语言项目例子提供了一种实现文本数组排序的源码,非常适合初学者和有一定经验的开发者进行学习和参考。 在易语言中,数组是一种数据结构,用于存储同类型的数据集合。文本数组则特指数组...
在这个例子中,`lazy_pinyin`函数将汉字转换为拼音的简化形式(不区分声调),然后`sorted`函数按照拼音的字母顺序进行排序。如果需要考虑声调,可以使用`pypinyin`的`pinyin`函数代替`lazy_pinyin`。 此外,我们还...
这篇博客 "[转] JS 排序(包括按中文拼音排序) Google到的好东西, 收藏!" 提供了一些关于JavaScript排序的实用技巧,包括如何对中文字符串按照拼音进行排序。在JavaScript的Array对象中,有一个内置方法`sort()`,它...