JAVA获得汉字首字母
2018-03-21 12:31
288 查看
JAVA获得汉字首字母
在开发中我们会遇到需要提出汉字中的拼音的首字母、提出汉字的拼音等,这时可以用 pinyin4j.jar来处理。pinyin4j.jar 的Maven依赖
<!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency>
下面提供一个工具类
import java.util.regex.Matcher; import java.util.regex.Pattern; 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 PinyinUtils { /** * 获得汉语拼音首字母 * * @param chines 汉字 * * @return */ public static String getAlpha(String chines) { chines = cleanChar(chines); String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pinyinName += nameChar[i]; } } return pinyinName; } /** * 将字符串中的中文转化为拼音,英文字符不变 * * @param inputString 汉字 * * @return */ public static String getPingYin(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); format.setVCharType(HanyuPinyinVCharType.WITH_V); String output = ""; if (inputString != null && inputString.length() > 0 && !"null".equals(inputString)) { char[] input = inputString.trim().toCharArray(); try { for (int i = 0; i < input.length; i++) { if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) { String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format); output += temp[0]; } else output += java.lang.Character.toString(input[i]); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { return "*"; } return output; } /** * 汉字转换位汉语拼音首字母,英文字符不变 * * @param chines * 汉字 * @return 拼音 */ public static String converterToFirstSpell(String chines) { chines = cleanChar(chines); String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pinyinName += nameChar[i]; } } return pinyinName; } }
这个工具类大多数情况下够用了。
相关文章推荐
- java中获得汉字首字母
- 获得汉字拼音首字母的java工具类GetCh2Spell .java
- 获得汉字拼音首字母的java工具类
- 引用 使用Java获得汉字的拼音首字母
- 获得汉字的首字母大写 java
- 获得汉字拼音首字母的java工具类
- [JAVA]获得汉字的拼音首字母
- SQL Server中获得汉字首个字母的函数
- oracle汉字转拼音(获得全拼/拼音首字母/拼音截取等)
- 在Excel中获得汉字的首字母
- Java中获取GBK编码汉字的拼音首字母(包括生僻字)
- java统计汉字,字母数字等个数
- 获得汉字拼音的首字母和全拼
- Java_获取汉字的汉语拼音首字母Java版
- java 获取汉字拼音的首字母
- Java 获取汉字串首字母并大写和获取汉字的全拼,英文字符不变
- java汉字首字母提取
- 一个中文汉字算两位,一个英文字母算一位,计算中文和英文混合的字符串长度。字符串:String str = "我不好java";
- java验证码中的数字、字母、汉字如何随机生成
- JAVA实现汉字转全拼或首字母