136 lines
4.1 KiB
Plaintext
136 lines
4.1 KiB
Plaintext
package com.bonus.core;
|
|
|
|
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;
|
|
|
|
public class PinYinUtil {
|
|
|
|
/**
|
|
* 得到 全拼小写
|
|
*
|
|
* @param src
|
|
* @return
|
|
*/
|
|
public static String getPingYinQS(String src) {
|
|
char[] t1 = null;
|
|
t1 = src.toCharArray();
|
|
String[] t2 = new String[t1.length];
|
|
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
|
|
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
|
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
|
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
|
|
String t4 = "";
|
|
int t0 = t1.length;
|
|
try {
|
|
for (int i = 0; i < t0; i++) {
|
|
// 判断是否为汉字字符
|
|
if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
|
|
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
|
|
t4 += t2[0];
|
|
} else {
|
|
t4 += java.lang.Character.toString(t1[i]);
|
|
}
|
|
}
|
|
return t4;
|
|
} catch (BadHanyuPinyinOutputFormatCombination e1) {
|
|
e1.printStackTrace();
|
|
}
|
|
return t4;
|
|
}
|
|
/**
|
|
* 得到 全拼大写
|
|
*
|
|
* @param src
|
|
* @return
|
|
*/
|
|
public static String getPingYinQB(String src) {
|
|
char[] t1 = null;
|
|
t1 = src.toCharArray();
|
|
String[] t2 = new String[t1.length];
|
|
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
|
|
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
|
|
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
|
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
|
|
String t4 = "";
|
|
int t0 = t1.length;
|
|
try {
|
|
for (int i = 0; i < t0; i++) {
|
|
// 判断是否为汉字字符
|
|
if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
|
|
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
|
|
t4 += t2[0];
|
|
} else {
|
|
t4 += java.lang.Character.toString(t1[i]);
|
|
}
|
|
}
|
|
return t4.toUpperCase();
|
|
} catch (BadHanyuPinyinOutputFormatCombination e1) {
|
|
e1.printStackTrace();
|
|
}
|
|
return t4.toUpperCase();
|
|
}
|
|
|
|
|
|
/**
|
|
* 得到中文首字母小写
|
|
*
|
|
* @param str
|
|
* @return
|
|
*/
|
|
public static String getPinYinS(String str) {
|
|
|
|
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;
|
|
}
|
|
}
|
|
return convert;
|
|
}
|
|
/**
|
|
* 得到中文首字母大写
|
|
*
|
|
* @param str
|
|
* @return
|
|
*/
|
|
public static String getPinYinB(String str) {
|
|
|
|
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;
|
|
}
|
|
}
|
|
return convert.toUpperCase();
|
|
}
|
|
|
|
/**
|
|
* 将字符串转移为ASCII码
|
|
*
|
|
* @param cnStr
|
|
* @return
|
|
*/
|
|
public static String getCnASCII(String cnStr) {
|
|
StringBuffer strBuf = new StringBuffer();
|
|
byte[] bGBK = cnStr.getBytes();
|
|
for (int i = 0; i < bGBK.length; i++) {
|
|
// System.out.println(Integer.toHexString(bGBK[i]&0xff));
|
|
strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
|
|
}
|
|
return strBuf.toString();
|
|
}
|
|
|
|
}
|