# pom 文件

1
2
3
4
5
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>

# 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public static String getFullSpell(String chinese) {
// 用StringBuffer(字符串缓冲)来接收处理的数据
StringBuffer sb = new StringBuffer();
//字符串转换字节数组
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
//转换类型(大写or小写)
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//定义中文声调的输出格式
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
//定义字符的输出格式
defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
for (int i = 0; i < arr.length; i++) {
//判断是否是汉子字符
if (arr[i] > 128) {
try {
sb.append(capitalize(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]));
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
// 如果不是汉字字符,直接拼接
sb.append(arr[i]);
}
}
return sb.toString();
}


/**
* 首字母大写
* @param str
* @return
*/
public static String capitalize(String str) {
char ch[];
ch = str.toCharArray();
if (ch[0] >= 'a' && ch[0] <= 'z') {
ch[0] = (char) (ch[0] - 32);
}
String newString = new String(ch);
return newString;
}