`
andyivy6
  • 浏览: 18340 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

java实现按中文首字母排序的方式

阅读更多
	  public static void main(String[] args) { 
	        // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA 
	        Comparator cmp = Collator.getInstance(java.util.Locale.CHINA); 
	        String[] arr = {"张三", "李四", "王五", "啊六"}; 
	        // 使根据指定比较器产生的顺序对指定对象数组进行排序。 
	        Arrays.sort(arr, cmp); 
	        for (int i = 0; i < arr.length; i++) 
	            System.out.println(arr[i]); 
	        System.out.println(); 
	    } 

 

网上找到的。

 

下面是个比较中文字符串的公用方法,转载自http://mingjunmo.itpub.net/post/13169/70568

import java.io.UnsupportedEncodingException;

public class ChineseSortUtil {
	private static String __ENCODE__ = "GBK"; // 一定要是GBK
	private static String __SERVER_ENCODE__ = "GB2312"; // 服务器上的缺省编码

	/*
	 * 
	 * 比较两字符串
	 */

	public int compare(String s1, String s2) {
		String m_s1 = null, m_s2 = null;
		try {
			// 先将两字符串编码成GBK
			m_s1 = new String(s1.getBytes(__SERVER_ENCODE__), __ENCODE__);
			m_s2 = new String(s2.getBytes(__SERVER_ENCODE__), __ENCODE__);
		} catch (UnsupportedEncodingException e) {
			return s1.compareTo(s2);
		}
		int res = chineseCompareTo(m_s1, m_s2);
		System.out.println("比较:" + s1 + " | " + s2 + "==== Result: " + res);
		return res;
	}

	// 获取一个汉字/字母的Char值
	public static int getCharCode(String s) {
		if (s == null && s.equals(""))
			return -1; // 保护代码
		byte[] b = s.getBytes();
		int value = 0;
		// 保证取第一个字符(汉字或者英文)
		for (int i = 0; i < b.length && i <= 2; i++) {
			value = value * 100 + b[i];
		}
		return value;
	}

	// 比较两个字符串
	public int chineseCompareTo(String s1, String s2) {
		int len1 = s1.length();
		int len2 = s2.length();
		int n = Math.min(len1, len2);
		for (int i = 0; i < n; i++) {
			int s1_code = getCharCode(s1.charAt(i) + "");
			int s2_code = getCharCode(s2.charAt(i) + "");
			if (s1_code != s2_code)
				return s1_code - s2_code;
		}
		return len1 - len2;
	}

}

 

 

分享到:
评论

相关推荐

    Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...

    Java实现按中文首字母排序的具体实例

    本文将详细解释如何使用Java实现按中文首字母排序。 首先,Java标准库提供了一个强大的工具类——`java.util.Arrays`,它包含了一系列用于操作数组的方法,其中包括排序功能。`Arrays.sort()`函数就是其中的关键,...

    java中文排序,数字字母汉字排序

    总结起来,实现Java中按数字、字母和汉字顺序的排序,主要步骤包括: 1. 创建自定义的`Comparator`类。 2. 使用`PinyinHelper`将中文字符转换为拼音。 3. 分类处理数字、字母和汉字,根据它们的特性进行比较。 4. ...

    sql 按拼音首字母排序

    标题“SQL按拼音首字母排序”以及描述中的关键词“SQL按拼音排序”,指向了一种特殊的数据排序需求:在数据库中,针对包含中文字符的字段,按照中文拼音的首字母进行排序。这在处理大量含有中文名称、地点等信息的...

    JAVA通过数组按首字母排序

    ### JAVA通过数组按首字母排序 在Java编程语言中,对字符串数组进行排序是一个常见的操作。本篇文章将详细介绍如何利用Java内置的`Arrays.sort()`方法按照字符串的首字母进行排序,以及如何处理大小写敏感性问题。 ...

    java实现读取汉字的首字母

    在Java编程语言中,处理汉字并获取其首字母是一项常见的任务,特别是在中文信息处理、搜索引擎优化(SEO)或拼音输入法等场景下。这个过程通常涉及到汉字与Unicode编码的转换,因为Java内部使用Unicode来表示字符。...

    java提取汉字首字母

    4. **GB2Alpha.java**:这个文件名可能表示这是一个Java源代码文件,用于将汉字转换为其首字母,可能是通过GB2312编码下的拼音规则实现的。GB2312是中国早期的汉字编码标准,包含了6763个常用汉字,但它没有包含拼音...

    中文首字母排序java代码

    通过将每个汉字转换为其拼音首字母,可以实现更合理的排序。 2. **检索与过滤**:对于需要根据首字母快速检索中文条目的应用(如电话簿、索引等),这种方法提供了一种高效的解决方案。用户可以通过首字母快速定位...

    java获取汉字的首字母

    Java获取汉字的首字母是一项常见的文本处理任务,尤其在数据编码、搜索引擎优化或者拼音排序等场景下非常有用。本文将详细讲解如何利用Java实现这一功能,并探讨相关知识点。 首先,我们要明白汉字首字母的获取主要...

    java中对单层json进行key字母排序

    `java中对单层json进行key字母排序`的标题指出了我们需要对一个单层JSONObject的键进行字母升序排序。描述提到这个资源可以直接在程序中使用,意味着提供了一个功能函数来实现这一操作。 在提供的代码中,可以看到...

    java通讯录获取首字母

    这样,我们就可以使用`pinyin4j`库轻松地处理中文通讯录,实现按首字母排序或搜索的功能。在实际开发中,还可以根据需求对首字母处理进行优化,比如处理多音字、特殊字符等。通过这样的方式,我们可以让Java程序更好...

    字母索引定位,仿联系人列表功能,实现字母A-Z排序

    在Android应用开发中,创建一个类似手机联系人应用的界面是一项常见的任务,其中包括对数据进行字母排序并实现字母索引定位的功能。这个功能允许用户快速浏览和定位到以特定字母开头的数据项,提高用户体验。本篇...

    一个获得汉字拼音首字母的java程序

    该Java程序的实用价值在于,它提供了一种简便的方式,将复杂的汉字数据转换为易于处理的拼音首字母形式,这对于构建中文信息检索系统、中文姓名数据库管理、以及任何需要快速识别和排序中文文本的应用场景都极其有用...

    java 提取汉字的首字母、拼音

    在Java编程中,提取汉字的首字母和拼音是一项常见的需求,尤其在中文数据处理和搜索优化方面。这里我们将深入探讨如何使用Java实现这一功能,并基于提供的`pinyin4j-2.5.0.jar`库和`Pinyin.java`源码进行讲解。 `...

    Java 获取汉字的拼音或汉字首字母

    Java 获取汉字的拼音或汉字首字母在Java中获取汉字的拼音或汉字首字母是一个有挑战性的任务,因为汉字没有像拉丁字母那样的标准编码方案。不过,有一些第三方库可以简化这个过程。汉字拼音库是一个常用的库,它可以...

    首字母排序

    在编程语言如Java、Python、C#或JavaScript中,都有内置的函数或方法用于实现首字母排序。例如,在Python中,可以使用`sorted()`函数结合`lambda`表达式来对列表进行首字母排序,如下: ```python my_list = ['...

    mysql根据汉字首字母搜索

    在数据库表中没有录入汉字对应的拼音首字母的情况下,进行汉字拼音首字母搜索,下载文本后 直接在mysql中执行,后就可实现根据拼音搜索功能

    java集合某个字段按照中文拼音排序.docx

    "Java集合某个字段按照中文拼音排序" Java集合某个字段按照中文拼音排序是Java开发中经常遇到的问题。对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用...

    Java中的输入汉字拼音首字母即自动显示数据库中相应内容

    在Java编程中,实现输入汉字拼音首字母自动显示出数据库中相应内容的功能,是常见的文本框自动补全(AutoComplete)技术的一种应用场景。这种技术通常用于提高用户输入的效率和准确性,常见于搜索引擎、输入法软件...

Global site tag (gtag.js) - Google Analytics