- 浏览: 2159127 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
默认情况下,字符串的比较使用字符串包含字符的ASCII码来比较。
java.text.Collator使用字符串包含字符在指定语言的自然顺序(譬如中文汉字的自然顺序)做比较。是locale敏感的。
如果只比较纯英文,那么就不需要使用collator。一般情况下我们直接使用Collections.sort()来执行排序操作、或者根据字符的ASCII码来排序。但是,如果其中包含一些特殊字符如é、中文汉字,那边使用collator和默认的collections.sort排序结果并不一致。
// 中文排序,音标字符排序
java.text.Collator使用字符串包含字符在指定语言的自然顺序(譬如中文汉字的自然顺序)做比较。是locale敏感的。
如果只比较纯英文,那么就不需要使用collator。一般情况下我们直接使用Collections.sort()来执行排序操作、或者根据字符的ASCII码来排序。但是,如果其中包含一些特殊字符如é、中文汉字,那边使用collator和默认的collections.sort排序结果并不一致。
// 中文排序,音标字符排序
import java.util.List; import java.util.ArrayList; import java.util.Locale; import java.util.Collections; import java.text.Collator; public class StringShortWithCollator { public static void main(String[] args) { List<String> fruits = new ArrayList<String>(); fruits.add("caffeine"); fruits.add("café"); fruits.add("cafeteria"); Collections.sort(fruits); for (int i = 0; i < fruits.size(); i++) { String fruit = fruits.get(i); System.out.println("orignal sort = " + fruit); } // 输出 // orignal sort = cafeteria // orignal sort = caffeine // orignal sort = café // Calendar cal = Calendar.getInstance(); // 使用默认的时区和locale // 指定为美国locale Collator collator = Collator.getInstance(Locale.US); Collections.sort(fruits, collator); for (int i = 0; i < fruits.size(); i++) { String fruit = fruits.get(i); System.out.println("collator sort = " + fruit); } // 输出 // collator sort = café // collator sort = cafeteria // collator sort = caffeine // 中文排序 List<String> chineses = new ArrayList<String>(); chineses.add("张三"); chineses.add("李四"); chineses.add("王五"); chineses.add("刘六"); Collections.sort(chineses); for (int i = 0; i < chineses.size(); i++) { String chinese = chineses.get(i); System.out.println("默认中文字符串排序: = " + chinese); } // 输出: // 默认中文字符串排序: = 刘六 // 默认中文字符串排序: = 张三 // 默认中文字符串排序: = 李四 // 默认中文字符串排序: = 王五 Collator collatorChinese = Collator.getInstance(java.util.Locale.CHINA); Collections.sort(chineses, collatorChinese); for (int i = 0; i < chineses.size(); i++) { String chinese = chineses.get(i); System.out.println("以中国语默认顺序来进行中文排序: = " + chinese); } // 输出: // 以中国语默认顺序来进行中文排序: = 李四 // 以中国语默认顺序来进行中文排序: = 刘六 // 以中国语默认顺序来进行中文排序: = 王五 // 以中国语默认顺序来进行中文排序: = 张三 } }
发表评论
-
xml 字符串和xml Document相互转换、xml Document内容输出到http response
2012-11-05 10:07 5568import java.io.ByteArrayOutpu ... -
isAssignableFrom & isInstance
2012-11-02 14:34 1228java.lang.Object extended by ja ... -
Struts 1.1 ExceptionHandler(转)
2012-11-02 10:20 1433转自:SSH项目中利用Exce ... -
X.509、数字签名、CA(Certificate Authority)、自签名证书、PKI
2012-10-18 14:22 6327X.509是由国际电联电信委员会(ITU-T)为单点登录(SS ... -
keytool、keystore、jarsigner、生成自签名证书
2012-10-18 10:27 8055Keytool是Java的密钥和数字证书管理工具,位于JDK_ ... -
Java 类初始化顺序
2012-08-21 14:07 1107class Parent { // 静态变量 pu ... -
java嵌套类、静态嵌套类、内部类
2012-08-21 10:29 2112官网文档:Nested Classes 什么是嵌套类及内部类 ... -
java静态类、静态方法、静态变量、实例变量、线程本地变量、静态线程本地变量
2012-08-21 10:24 1887静态类: 只有嵌套类才 ... -
ProcessBuilder 和 Runtime
2012-07-17 09:26 20944ProcessBuilder.start() 和 Runtim ... -
对称加密、PBE基于密码加密、PKCS
2012-07-05 11:07 7803对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信 ... -
(转)xml schema xsd 入门
2012-06-28 16:05 2472理解XML Schema: XML Schema 初步 (I) ... -
XmlRootElement JAXB注解
2012-06-28 15:23 39094@Retention(value=RUNTIME) @T ... -
jaxb xml数据绑定
2012-06-28 14:22 1323XML Schema编辑工具:XML Spy 常见的XML绑 ... -
(转)jpa 注解
2012-06-25 16:00 1335转自:jpa 注解 1.设置Po ... -
(转)JPA(Java Persistence API)简介
2012-06-25 14:20 1548转自JPA基础(一):全 ... -
Play 内置模板标签(1.2.3版本)
2012-06-18 14:03 5011Play framework 1.2.3 Built-in t ... -
play plugin插件 实现类似Servlet中的拦截器效果
2012-06-15 15:05 3650play plugin和module的区别见:play Mod ... -
Play tag标签,模板、tag中直接调用后台静态java方法
2012-06-15 11:02 2996见Play Framework template engine ... -
play secure模块 验证和授权管理
2012-06-14 15:48 3433参考:http://www.playframework.org ... -
Play framework HTTP Route路由
2012-06-08 14:22 1698路由组件负责把进来的HTTP请求转换成Controller控制 ...
相关推荐
首先,我们要明白在Java中,默认的字符串排序是基于Unicode编码的,这可能会导致中文字符与英文字符混合排序时出现问题。例如,英文字符通常会排在中文字符前面,因为它们的Unicode值更低。为了解决这个问题,我们...
`Collator`提供了比较字符串的能力,可以根据特定的区域设置进行排序或比较。这在处理国际化数据时非常有用,因为不同语言的字符顺序和比较规则可能大不相同。 另外,`ChoiceFormat`允许我们在一定范围内选择不同的...
对于需要考虑语言环境的情况,推荐使用`java.text.Collator`类进行排序。 #### 四、示例代码解析 给出的示例代码展示了如何使用`compareToIgnoreCase()`方法对一个字符串列表进行排序: 1. **初始化字符串列表:*...
Collator类可以用来比较中文字符串,并且可以根据中文拼音进行排序。 ```java List<String> list = new ArrayList(); list.add("你"); list.add("好"); list.add("啊"); Collections.sort(list, new Comparator() ...
`Collator` 类提供了与语言环境相关的字符串排序和比较服务。 2. **Comparator 接口**:这是一个接口,用于定义比较两个对象的自然顺序的方法。 3. **Collections.sort() 方法**:这是一个静态方法,用于对集合进行...
### 知识点一:字符串排序算法在 Java 中的应用 #### 冒泡排序算法实现 冒泡排序是一种简单的排序算法,通过重复遍历要排序的列表,比较每对相邻的元素,并交换它们的位置(如果顺序错误的话),直到没有任何一对...
`java.text`包为Java开发者提供了强大而灵活的文本处理能力,无论是格式化日期、数字还是处理字符串排序和迭代,都能轻松应对。初学者在学习过程中应该深入理解这些类的功能和用法,以便在实际项目中能够更加高效地...
在 Java 中,实现中文字符按 Unicode 排序是一件非常重要的事情,特别是在处理中文字符串时。今天,我们将探讨如何使用 Java 语言来实现中文字符按 Unicode 排序。 在 Java 中,String 类提供了默认的比较方案,...
总结来说,Java中的`Collator`类为我们提供了方便的中文字符串排序功能,但对于繁体字或特定的排序需求,可能需要自定义`Comparator`来实现。在实际开发中,理解这些基础工具和接口的使用,能够帮助我们更有效地处理...
在Java编程中,排序是常见的任务之一,尤其在处理数据集合时...总的来说,Java通过`Collator`和`Comparator`为我们提供了灵活的字符串排序机制,可以方便地处理各种语言环境下的排序需求,包括中文字符串的首字母排序。
3. **GBK编码的比较**:在处理GBK编码的字符串时,Java的默认字符串比较可能无法满足中文排序需求。可以使用`java.text.Collator`类,它可以处理不同语言的排序规则,包括中文。你需要实例化一个Collator对象,并...
因为创建`CollationKey`后,比较操作只需要比较两个键,而不是每次都重新计算字符串的排序特征。 总的来说,`TreeMap`提供了一种灵活的方式来存储和检索有序的数据。通过自定义`Comparator`,我们可以按照任何我们...
本篇文章将深入探讨如何使用Java自定义比较器(Comparator)来实现中文字符串的正确排序。 首先,我们要了解`compareTo()`方法,这是Java中的一个基础方法,位于`java.lang.Comparable`接口中。`compareTo()`用于比较...
以下是一个使用`Collator`对中文字符串排序的例子: ```java import java.text.Collator; import java.util.Arrays; import java.util.Collections; public class ChineseSort { public static void main...
Java提供了JDK内置的`java.text`包中的`Collator`类,可以实现对字符串的排序和比较,但并不直接支持汉字转拼音。因此,我们通常需要借助第三方库,如`Pinyin4j`,这是一个专门处理汉字与拼音转换的Java库。 1. **...
方法二,使用`java.text.RuleBasedCollator`,这允许我们在比较字符串时考虑语言环境: ```java import java.text.RuleBasedCollator; import java.util.Collections; import java.util.Comparator; import java....
其次,Java的`java.text`包包含了用于国际化和本地化的类,其中`BreakIterator`可以用于分割字符串,`Collator`则用于比较字符串,而`Normalizer`则用于处理Unicode字符的规范化。在处理俄语名称时,可能需要利用`...
对于更复杂的多语言应用,Java还提供了`java.text`包,其中包括`Collator`和`BreakIterator`类,用于排序和分词,以及`Formatter`类,用于格式化和本地化输出。这些工具使得Java成为开发国际化软件的理想选择。
2. **Collator**:这个类主要用于比较和排序字符串,它支持各种语言的排序规则。在获取拼音首字母时,我们可以利用`Collator`的`get Decomposition()`方法,它返回一个表示字符分解的标志,有助于我们解析汉字的拼音...
开发者可以使用Android SDK提供的`java.text`包,间接调用ICU的功能,如`SimpleDateFormat`用于日期和时间格式化,`DecimalFormat`用于数字格式化,`Collator`进行文本比较等。 **5. 自定义构建:** 对于有特殊需求...