Home >Java >javaTutorial >java convert Chinese characters to pinyin

java convert Chinese characters to pinyin

巴扎黑
巴扎黑Original
2016-12-10 09:33:391343browse

maven依赖

<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
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;
/**
 * 
 * @author InJavaWeTrust
 *
 */
public class GetPinYin {
/**
* 得到 全拼
* @param hanyu
* @return 全拼
*/
public static String getPinYin(String hanyu) {
char[] array = hanyu.toCharArray();
String[] pinyin = new String[array.length];
//创建格式化对象
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);    //转换后以全小写方式输出
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //无声调
format.setVCharType(HanyuPinyinVCharType.WITH_V);     //以v表示u
String quanpin = "";
try {
for (int i = 0; i < array.length; i++) {
// 判断是否为汉字字符
if (Character.toString(array[i]).matches("[\\u4E00-\\u9FA5]+")) {
pinyin = PinyinHelper.toHanyuPinyinStringArray(array[i], format);
quanpin += pinyin[0];
} else {
quanpin += Character.toString(array[i]);
}
}
return quanpin;
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return quanpin;
}
/**
* 得到中文首字母
* @param hanyu
* @return 中文首字母
*/
public static String getPinYinHeadChar(String hanyu) {
String headChar = "";
for (int i = 0; i < hanyu.length(); i++) {
char hanzi = hanyu.charAt(i);
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi);
if (pinyinArray != null) {
headChar += pinyinArray[0].charAt(0);
} else {
headChar += hanzi;
}
}
return headChar;
}
public static void main(String[] args) {
String hanyu = "鱼驴中華人民共和國1q";
System.out.println(getPinYin(hanyu));
System.out.println(getPinYinHeadChar(hanyu));
}
}


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn