Java实现中文字符串的排序功能

 1 package test;
 2
 3 /**
 4  *
 5  * @Title          书的信息类
 6  * @author         LR
 7  * @version     1.0
 8  * @since         2016-04-21
 9  */
10
11 public class Book {
12
13     private String book_id;
14
15     private String book_name;
16
17     private String publishing_house;
18
19     public Book(String book_id, String book_name, String publishing_house) {
20         super();
21         this.book_id = book_id;
22         this.book_name = book_name;
23         this.publishing_house = publishing_house;
24     }
25
26     public String getBook_id() {
27         return book_id;
28     }
29
30     public void setBook_id(String book_id) {
31         this.book_id = book_id;
32     }
33
34     public String getBook_name() {
35         return book_name;
36     }
37
38     public void setBook_name(String book_name) {
39         this.book_name = book_name;
40     }
41
42     public String getPublishing_house() {
43         return publishing_house;
44     }
45
46     public void setPublishing_house(String publishing_house) {
47         this.publishing_house = publishing_house;
48     }
49
50     @Override
51     public String toString() {
52         // TODO Auto-generated method stub
53         return "书号"+book_id+"\n书名"+book_name+"\n出版社"+publishing_house;
54     }
55 }
 1 package test;
 2
 3 import java.text.Collator;
 4
 5 /**
 6  *
 7  * @Title          中文字符串排序功能
 8  * @author         LR
 9  * @version     1.0
10  * @since         2016-04-21
11  */
12
13 import java.util.ArrayList;
14 import java.util.Collections;
15 import java.util.Comparator;
16
17 public class CollectionChineseSort implements Comparator<Book>{
18
19     Collator collator= Collator.getInstance(java.util.Locale.CHINA);
20
21     public static void main(String[] args) {
22
23         ArrayList<Book> list=new ArrayList<Book>();
24
25         list.add(new Book("1","英语","英语出版社"));
26         list.add(new Book("2","日语","日语出版社"));
27         list.add(new Book("3","德语","德语出版社"));
28         list.add(new Book("4","法语","法语出版社"));
29         list.add(new Book("5","俄语","俄语出版社"));
30
31         Collections.sort(list,new CollectionChineseSort());
32
33         for (Book book:list){
34             System.out.println(book);
35         }
36     }
37
38     @Override
39     public int compare(Book book1, Book book2) {
40         // TODO Auto-generated method stub
41
42         int compare_value=collator.compare(book1.getBook_name(),book2.getBook_name());
43
44         if(compare_value>0){
45             return 1;
46         }
47         if(compare_value<0){
48             return -1;
49         }
50
51         return 0;
52     }
53 }
时间: 2024-11-09 03:08:23

Java实现中文字符串的排序功能的相关文章

JAVA 写中文字符串到指定文件 中文乱码 问题解决

之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ File file=new File("F:test.txt"); if(!json.exists()){ file.createNewFile(); } Writer writer = new OutputStreamWriter(new FileOutputStream(file.getA

利用Java程序将字符串进行排序与拼接

1.初始生成字符串的代码程序: package com.map.test; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class Test { /** * @param args */ public static List<Map<String, String>

Java判断中文字符串是否乱码

转自CSDN一个博主的文章,感觉很有用,转发收藏一下. import java.util.regex.Matcher; import java.util.regex.Pattern; public class ChineseUtill { private static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBl

一个对含中文字符串在内的字符串排序简便方法

public class StringSort { public static void main(String[] args){ String[] arr = {"1101", "1100", "1001", "1110","1100","1101","0010","1000","0101","0011",

Java之List排序功能举例

1 package test_demo; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.List; 6 7 /** 8 * List排序功能举例 9 * */ 10 public class ListSortDemo { 11 public static void main(String[] args) { 12 sortInt(); 13 sortString(); 14 1

一个从源代码里提取中文字符串的java类

工作中需要优化代码里的中文警示语和异常信息,实在比较多,所以就写了个程序专门从代码里提取中文字符串. java做的,比较简单,放上来备忘 package com.extractstr.app; import java.io.*; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 搜索字符串并输出到控制台 */ public class ExtractStr { pub

java中文字符串截取

/** * author geksong <br/> * function 中文字符串相关操作<br/> **/ public class ChinaStringUtil { /** * 判断字符是不是中文字符 * @param c * @return */ public static boolean isChinese(char c) { int ascii = (int)c; if(ascii >= 0 && ascii <= 255) return

Java TreeSet集合排序 &amp;&amp; 定义一个类实现Comparator接口,覆盖compare方法 &amp;&amp; 按照字符串长度排序

package TreeSetTest; import java.util.Iterator; import java.util.TreeSet; import javax.management.RuntimeErrorException; /* 可以对set集合中的元素进行排序,其底层的数据结构是二叉树, 保证元素唯一性的依据是compareTo和return 0; TreeSet排序的第一种方式 让元素自身具备比较性 元素需要实现Comparable接口,覆盖compareTo方法 这种方式

实现java字符串长度截取功能

代码如下: /** * 字符串长度截取 * @author Administrator * */ public class Main { public static void main(String[] args) { String str = "java教程网提醒您,全屏观看效果更佳,更高清,该视频以学习为目的,不含任何商业模式,并且不提供任何的技术服务等,如有其它问题可以联系网站管理员,更多java源码尽在源码天堂."; int len = str.length(), maxLen