`

汉字排序问题例子

 
阅读更多
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汉字笔画排序2例子及jar包

    标签进一步明确了关键概念,包括"汉字笔画排序"、"java汉字笔画排序"、"java汉字按照笔画排序"、"汉字按照笔画排序"和"中文笔画排序"。这些标签强调了该话题的特定技术点,即使用Java语言对中文字符进行笔画计数并...

    MFC汉字排序

    在Microsoft Foundation Classes (MFC)库中,进行汉字排序是一个常见的需求,特别是在处理中文数据时。MFC提供了丰富的类和函数来支持C++编程,它为Windows应用程序开发提供了一种结构化的方式。在这个主题中,我们...

    解决Hibernate中MySQL的中文排序

    在这个例子中,`@OrderBy`注解使得Hibernate在查询`Article`时,根据`title`字段的GBK中文排序规则进行排序。 另外,提供的`GBKOrder.java`文件可能是实现自定义排序策略的类。在Hibernate中,可以通过实现`...

    实现汉字的按拼音首字母排序

    在iOS开发中,有时我们需要对汉字进行按照拼音首字母的排序,这在处理中文数据时非常常见,例如在创建联系人列表或者构建中文词典应用时。本篇将详细介绍如何利用第三方类库来实现这一功能。 首先,我们需要理解...

    关于中文英文混合排序javaDemo

    在这个例子中,我们首先创建了一个`Collator`实例,指定了`Locale.CHINA`,这样排序规则就会按照中文的习惯进行。然后,通过`setStrength()`方法设置排序强度,这里我们选择了`PRIMARY`,这意味着它将忽略字符的大小...

    EXT 表格 中文排序

    一个关于EXTJs 表格 中文排序的例子

    Java 中文排序 使用pinyin4j组件

    以下是如何使用`pinyin4j`进行中文排序的详细步骤: 1. **添加依赖**:首先,你需要在项目中引入`pinyin4j`库。如果你的项目是Maven项目,可以在`pom.xml`文件中添加如下依赖: ```xml &lt;groupId&gt;...

    JS中文拼音排序

    4. **处理特殊情况**:中文排序中,有些特殊情况需要考虑,比如数字、符号、全角/半角字符的处理,以及同音字的排列顺序。对于这些情况,可以在比较函数中添加额外的逻辑。 以下是一个简单的示例代码,展示了如何...

    MySQL对中文进行排序详解及实例

    通过`CONVERT`函数转换字符集,或创建自定义的排序规则,可以有效地解决中文排序的问题。在实际操作中,应结合具体环境和需求选择合适的方法,确保数据的正确性和一致性。希望这些信息对理解和处理MySQL中的中文排序...

    中文数组按拼音排序代码

    标题提到的“中文数组按拼音排序代码”是一个解决这个问题的方法,它通常涉及到将中文字符转换为其对应的拼音,然后再进行排序。 首先,我们要理解Python3如何处理字符串。在Python3中,字符串是以Unicode编码存储...

    Android汉字转拼音例子

    在Android开发中,有时我们需要将汉字转换为对应的拼音,以便进行一些特定的处理,比如搜索、排序或语音合成。这个过程被称为汉字转拼音。在"Android汉字转拼音例子"中,开发者利用了一个第三方库来实现这个功能。接...

    易语言希尔排序源码 JS调用例子

    3. **JS调用**:这个例子中提到了JS文本排序,意味着易语言代码可能通过调用JavaScript引擎来进行特定的排序操作。这可能是为了利用JavaScript在处理大量数据时的性能优势。在易语言中,实现跨语言调用通常需要使用...

    dataGrid中文排序

    本篇文章将深入探讨如何实现`dataGrid`中的中文排序,并结合提供的文件`SortUtil.txt`和`用法.txt`来讲解相关代码和字符集处理。 在Flex中,`dataGrid`的排序通常通过`sortField`和`sortOrder`属性或`sort`方法来...

    基础汉字笔画排序-未整理备份

    在这个特定的场景中,我们关注的是"基础汉字笔画排序",这是一个涉及到中文字符处理的特殊问题。在这个"未整理备份"的项目中,可能包含的是旧版代码,用于实现汉字按照笔画顺序进行排序的算法。 首先,我们要理解...

    中文排序方式:拼音,笔画,边傍

    拼音排序是最常用的中文排序方式之一,它按照汉字的拼音字母顺序进行排列。这种排序方式简单直观,易于理解和使用。 **示例代码:** ```sql SQL&gt; SELECT * FROM test ORDER BY NLSSORT(name, 'NLS_SORT=SCHINESE_...

    JS中使用sort结合localeCompare实现中文排序实例

    对于中文,它会根据汉字的拼音来进行排序,这正是我们需要的中文排序方式。 接下来,我们将介绍如何在JavaScript中结合使用Array.sort()和localeCompare来实现中文排序。Array.sort()方法可以接受一个可选的比较...

    表格拼音列排序

    总的来说,表格拼音列排序是一个实用的工具,它结合了汉字到拼音的转换技术和表格排序功能,使我们在处理中文数据时能够更加便捷。了解并掌握这一技能,对于从事数据分析、项目管理以及任何需要处理汉字数据的工作都...

    文本数组排序.zip易语言项目例子源码下载

    这个"文本数组排序.zip"的易语言项目例子提供了一种实现文本数组排序的源码,非常适合初学者和有一定经验的开发者进行学习和参考。 在易语言中,数组是一种数据结构,用于存储同类型的数据集合。文本数组则特指数组...

    Python代码源码-实操案例-框架案例-如何按照拼音顺序对中文汉字进行排序.zip

    在这个例子中,`lazy_pinyin`函数将汉字转换为拼音的简化形式(不区分声调),然后`sorted`函数按照拼音的字母顺序进行排序。如果需要考虑声调,可以使用`pypinyin`的`pinyin`函数代替`lazy_pinyin`。 此外,我们还...

    [转] JS 排序(包括按中文拼音排序) Google到的好东西,收藏!

    这篇博客 "[转] JS 排序(包括按中文拼音排序) Google到的好东西, 收藏!" 提供了一些关于JavaScript排序的实用技巧,包括如何对中文字符串按照拼音进行排序。在JavaScript的Array对象中,有一个内置方法`sort()`,它...

Global site tag (gtag.js) - Google Analytics