java中文排序
㈠ java汉字排序问题
二维数组问题而己,比较简单,我只说算法,你自己完成代码:
文本文件有N行,所有内的行组成一个数组,这是一维容数组
每一行有N个字符,所有字符组成一个数组,这是第二维的
所以根据你上面的情况,数组的生成是 String[4][5] textArr 也就是说有四行,每行有5个字符元素.
遍历这个二维数组,
1. 第一次遍历算出所有行中最长的行是谁,长度是多少(maxlen),在这里你都是5
2. for(int i=maxlen-1; i>0; i--){ //由大到小递减得当前字符
for(int j=textArr.length-1;j>0;j--){//由大到小得当前行数
String tmp= textArr[j][i];//得到当前行数的当前字符
System.out.print(tmp);
}
System.out.println("");
}
如果是要重新写到文件,则只要把System.out语句改成相应写文件语句即可
另外,如果你不使用数组,使用Vector或者ArrayList会比数组使用起来更方便
㈡ java String 数组 中文如何排序
publicstaticvoidmain(String[]args)throwsException{
List<String>list=newArrayList<>();
Stringstr[]=newString[]{"富川/f","清远/q","三水/s","北海/b","防城港回/f","韶关/s","深圳/s","顺德/s","阳江/y","湛江/z",
"肇庆/z","中山答/z","珠海/z"};
for(Stringstring:str){
list.add(string);
System.out.println("1:"+string+"");
}
System.out.println("---------------------------");
Collatorcoll=Collator.getInstance(Locale.CHINESE);
Collections.sort(list,coll);
for(Stringstring:list){
System.out.println("2:"+string+"");
}
}
㈢ 求一个JAVA的汉字排序程序。。。
对汉字是按拼音排序的,示例:import java.util.*;
import java.text.*;public class Test{
public static void main(String args[]) {
//Comparator cmp = (RuleBasedCollator)java.text.Collator.getInstance(java.util.Locale.CHINA);//try testing various locales
Comparator cmp = java.text.Collator.getInstance(java.util.Locale.CHINA);//try testing various locales
String[] arr = {"张三", "李四", "张", "王"};
java.util.Arrays.sort(arr, cmp);
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
Comparator cmp2 = java.text.Collator.getInstance();//try default locale
String[] arr2 = {"我", "是", "草", "吗"};
java.util.Arrays.sort(arr2, cmp2);
for (int i = 0; i < arr2.length; i++)
System.out.println(arr2[i]);
}
}
㈣ java 中文一,二,到十,怎么排序
如果按照数据库自复己排序,会按制照中文的拼音进行排序(A-Z)有实验过。如果要实现楼主这样的功能。我建议,增加两个字段,分别是等级(level,最好是约定一个与A级B级对应的数字,如A级填1)、班级号(classno,班级 填,1,2,3代表1班2班3班),两个字段就可以确定一个班级。然后SQL语句为 select 查询的内容 from 表名 order by level,classno (先按level,后按classno排序)
㈤ JAVA 汉字首字母排序
我知道用java可以通过汉字的获得到首字母。下面是源码:
import net.sourceforge.pinyin4j.PinyinHelper;
public class PinyinAPI {
/**
* 提取每个汉字的首字母(大写)
*
* @param str
* @return
*/
public static String getPinYinHeadChar(String str) {
if (isNull(str)) {
return "";
}
String convert = "";
for (int j = 0; j < str.length(); j++) {
char word = str.charAt(j);
// 提取汉字的首字母
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (pinyinArray != null) {
convert += pinyinArray[0].charAt(0);
}
else {
convert += word;
}
}
convert = string2AllTrim(convert);
return convert.toUpperCase();
}
/*
* 判断字符串是否为空
*/
public static boolean isNull(Object strData) {
if (strData == null || String.valueOf(strData).trim().equals("")) {
return true;
}
return false;
}
/**
* 去掉字符串包含的所有空格
*
* @param value
* @return
*/
public static String string2AllTrim(String value) {
if (isNull(value)) {
return "";
}
return value.trim().replace(" ", "");
}
public static void main(String[] args) {
String ss = PinyinAPI.getPinYinHeadChar("中国");
System.out.print(ss);//ZG
}
}
㈥ java 中文姓名排序!!!
import java.util.*;
import java.text.*;
public class SortByChinese {
//测试
public static void main(String[] args) {
String[] a1 = {"保定","何子安","于小云","刘帝","刘何保定子安","刘","刘娜","家强","刘博"};
getSortOfChinese(a1);
for (int i = 0; i < a1.length; i++) {
System.out.println(a1[i]);
}
}
/**
*
* @param a String[]
* @return String[]
*/
public static String[] getSortOfChinese(String[] a) {
// Collator 类是用来执行区分语言环境这里使用CHINA
Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
// JDKz自带对数组进行排序。
Arrays.sort(a, cmp);
return a;
}
}
自己测试哦!
㈦ JAVA中List集合的汉字排序
中文的要按拼音字母排序,貌似直接是没有办法的吧...
有一种方法是需要先定义一个"字典版",就像真实的字典一权样,如:
你:ni
我:wo
好:hao
........
然后排序时汉字到"字典"中查找对应的拼音就可以排序啦
这种字典应该在网上可以找的到,已经有整理的啦。
这应该是种笨方法,不知是否有高人有好的办法
㈧ java怎么实现中文数字排序
先将中文数字转换成数字,然后排序。输出的时候将数字和中文数字之间的对应关系还原就好了。
㈨ Java编程中怎样实现中文排序
简单的实现排序,可以参考如下的代码
importjava.text.Collator;
importjava.util.Arrays;
importjava.util.Comparator;
importjava.util.Locale;
publicclassPYDemo{
publicstaticvoidmain(String[]args){
String[]names={"赵z子z龙l","刘l备b","关g羽y","张z飞f"};
System.out.println("排序前"+Arrays.toString(names));
Comparatorcpt=Collator.getInstance(Locale.CHINA);
Arrays.sort(names,cpt);
System.out.println("排序后"+Arrays.toString(names));
}
}
测试输出
排序前[赵z子z龙l,刘l备b,关g羽y,张z飞f]
排序后[关g羽y,刘l备b,张z飞f,赵z子z龙l]
如果有一些非常用的汉字,生僻字等,建议使用一些jar包实现,比如pinyin4j
㈩ java汉字排序是按照什么排序的
这个博客写,你看下,希望能帮版到权你
http://www.blogjava.net/caizh2009/archive/2010/12/17/340974.html