恶魔之java汉子转拼音-简单易操作
配置
pom.xml配置
<dependency>
<groupId>com.belerweb
</groupId>
<artifactId>pinyin4j
</artifactId>
<version>2.5.0
</version>
</dependency>
<dependency>
<groupId>ch.qos.logback
</groupId>
<artifactId>logback-classic
</artifactId>
<version>1.1.7
</version>
</dependency>
代码示例
PinYinUtil
package myUtil.myUtil;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PinYinUtil {
private static final Logger logger = LoggerFactory
.getLogger(PinYinUtil.class);
/**
* 将含有汉子英文的字符串转换为 拼音,英文保持原样
*
* @param str
* @return
*/
public static String
getStringPinYin(String str) {
String[] pinyin =
null;
str = ValidateUtil.isNull(str)?
"":str;
StringBuilder sb =
new StringBuilder();
HanyuPinyinOutputFormat format =
new HanyuPinyinOutputFormat();
for (
int i =
0; i < str.length(); ++i) {
try {
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(i), format);
}
catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error(
"汉子转拼音异常!");
}
if (pinyin ==
null) {
sb.append(str.charAt(i));
}
else {
sb.append(pinyin[
0]);
}
}
return sb.toString();
}
/**
* 将含有汉子英文的字符串转换为 首字母,英文保持原样
*
* @param str
* @return
*/
public static String
getStringHeadPinYin(String str) {
String[] pinyin =
null;
str = ValidateUtil.isNull(str)?
"":str;
StringBuilder sb =
new StringBuilder();
HanyuPinyinOutputFormat format =
new HanyuPinyinOutputFormat();
for (
int i =
0; i < str.length(); ++i) {
try {
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(i),format);
}
catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error(
"汉子转拼音异常!");
}
if (pinyin ==
null) {
sb.append(str.charAt(i));
}
else {
sb.append(pinyin[
0].charAt(
0));
}
}
return sb.toString();
}
}