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