最近使用pinyin4j.jar对数据库地名进行拼音转换老是报空指针
转换代码如下
public static String ToPinyin(String chinese) {
if(chinese==null||chinese.isEmpty()){
return null;
}
String pinyinStr = “”;
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
空指针错误原因是数据库有字段为
辽宁(营口)沿海产业基地
该方法不能解析括号
一旦运行就会报错
解决方法:
将上面代码改为
public static String ToPinyin(String chinese) {
if(chinese==null||chinese.isEmpty()){
return null;
}
String pinyinStr = “”;
char[] newChar = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < newChar.length; i++) {
if (newChar[i] > 128) {
try {
pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pinyinStr += newChar[i];
}
}
return pinyinStr;
}
问题得到解决
pinyin4j NullPointerException: null空指针异常
最新推荐文章于 2021-03-21 23:36:25 发布