pinyin 4 jツールクラス--Java中国語文字操作:ソート、ピンイン

5068 ワード

直接コードをつけましょう.男性をピンインに変換し、「pinyin 4 j-2.5.0.jar」を使用します.
1、ChinaWord.JAva:男のソート
/**
 * @   :com.andy.    <br>
 * @    :Test.java<br>
 * @    :<br>
 * @   :Andy.wang<br>
 * @     :2013-9-3  11:53:45<br>
 * @    :<br>
 * @     :<br>
 */
package com.andy.huanzipaixu;

import java.text.Collator;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Locale;

/**
 * @   :com.andy.    <br>
 * @    :ChinaWord.java<br>
 * @    :    <br>
 * @   :Andy.wang<br>
 * @     :2013-9-3  11:53:45<br>
 * @    :<br>
 * @     :<br>
 */
public class ChinaWord {
	//   Java             "  "
	private static final Locale china = Locale.CHINA;

	public static void main(String[] args) {
		String[] names = { "  ", "  ", "  ", "   ", "   ", "Andy", "   " };
		ChinaWord.reverse(names);
		System.out.println("  :" + Arrays.asList(names));

		ChinaWord.orderAsc(names);
		System.out.println("  :" + Arrays.toString(names));

		ChinaWord.orderDesc(names);
		System.out.println("  :" + Arrays.toString(names));
	}

	/**
	 * 
	 * @    :orderDesc<br>
	 * @     :        <br>
	 * @    :Andy.wang<br>
	 * @     :2014-3-27  05:14:21 <br>
	 * @param param :           
	 *      :void
	 */
	public static void orderDesc(String[] param) {
		Arrays.sort(param, Collections
				.reverseOrder(Collator.getInstance(china)));
	}

	/**
	 * 
	 * @    :orderAsc<br>
	 * @     :        <br>
	 * @    :Andy.wang<br>
	 * @     :2014-3-27  05:09:50 <br>
	 * @param param
	 *            :       
	 * <br>
	 *      :void
	 */
	public static void orderAsc(String[] param) {
		Arrays.sort(param, Collator.getInstance(china));
	}

	/**
	 * 
	 * @    :reverse<br>
	 * @     :        <br>
	 * @    :Andy.wang<br>
	 * @     :2014-3-27  04:42:13 <br>
	 * @param param
	 *            :       
	 * <br>
	 *      :void
	 */
	public static void reverse(String[] param) {
		List<String> list = Arrays.asList(param);
		Collections.reverse(list);
	}
}
テスト結果:
反転:[張偉翔,Andy,劉楽楽,劉宏全,楊陽,趙凡,王生]昇順:[Andy,劉宏全,劉楽楽,王生,楊陽,張偉翔,趙凡]降順:[趙凡,張偉翔,楊陽,王生,劉楽楽,劉宏全,Andy]
2、PinyiTest.JAva:漢字をピンインに変換
package com.andy.pinyi;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * 
 * @    :PinyiTest.java <br>
 * @    :         ,      pinyin4j-2.5.0.jar<br>
 * @   : Andy.wang <br>
 * @     : 2012-9-5   05:05:29 <br>
 * @    : <br>
 * @     : <br>
 */
public class PinyiTest {
	static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

	static {
		/**
		 * HanyuPinyinToneType : 1、WITHOUT_TONE :    2、WITH_TONE_NUMBER
		 * :         3、WITH_TONE_MARK :    <br>
		 * HanyuPinyinCaseType : 1、LOWERCASE :   2、UPPERCASE :   <br>
		 * HanyuPinyinVCharType : 1、WITH_U_UNICODE : ü   2、WITH_U_AND_COLON
		 * : U           3、WITH_V : V     
		 */
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		//             
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		//          
		format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
	}

	/**
	 * 
	 * @    :pinyi<br>
	 * @     :        <br>
	 * @    :Andy.wang<br>
	 * @     :2014-3-27  05:31:22 <br>
	 * @param param
	 *            :      
	 * @return      :String
	 */
	@SuppressWarnings("deprecation")
	public static String pinyi(String param) {
		if (null == param || "".equals(param)) {
			return "";
		} else {
			try {
				return PinyinHelper.toHanyuPinyinString(param, format, " ");
			} catch (BadHanyuPinyinOutputFormatCombination e) {
				e.printStackTrace();
			}
		}
		return null;
	}

	/**
	 * 
	 * @    :duoYin<br>
	 * @     :          <br>
	 * @    :Andy.wang<br>
	 * @     :2014-3-27  05:58:30 <br>
	 * @param c
	 *            :     
	 * @return      :String[]
	 */
	public static String[] duoYin(char c) {
		try {
			return PinyinHelper.toHanyuPinyinStringArray(c, format);
		} catch (BadHanyuPinyinOutputFormatCombination e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	public static void main(String[] args) {
		String str = "     ,    !";
		System.out.println(PinyiTest.pinyi(str));

		char c = ' ';
		String[] cs = PinyiTest.duoYin(c);
		for (int i = 0; i < cs.length; i++) {
			System.out.println("'" + c + "'  " + (i + 1) + "    :" + cs[i]);
		}
	}
}
テスト結果:
zhong guo cheng xu yuan ,lü lin hao han ! '「重い」の第1の読み方は、zhong「重い」の第2の読み方は、chong