当前位置:   article > 正文

java实现大段中文转拼音首字母、拼音全拼_java 中文转字母

java 中文转字母

话不多说,上代码:

  1. package cn.jiangshuai.personManage;
  2. import java.util.Scanner;
  3. import net.sourceforge.pinyin4j.PinyinHelper;
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  6. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  7. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  8. /**
  9. * 中文汉字转拼音工具类
  10. * @author JSYH
  11. *
  12. */
  13. public class Main {
  14. public static void main(String[] args) {
  15. // System.out.println("中国 首字母大写:"+toFirstChar("中国").toUpperCase());
  16. // System.out.println("中国 转成拼音:"+toPinyin("中国"));
  17. StringBuilder sBuilder = new StringBuilder();
  18. System.out.println("请输入中文......");
  19. Scanner inScanner = new Scanner(System.in);
  20. while(inScanner.hasNextLine()) {
  21. sBuilder.append(inScanner.nextLine());
  22. if(inScanner.nextLine().equals("over")) { //用于控制结束输入的逃逸字符
  23. break;
  24. }
  25. }
  26. System.out.println("处理之后的输入字符串......");
  27. //System.out.println(sBuilder.toString().replaceAll("[^(0-9)]", ""));
  28. System.out.println(sBuilder.toString().replaceAll("[^(\\u4e00-\\u9fa5)]", "")); //借助正则表达式过滤掉非汉字的内容
  29. System.out.println("转换结果......");
  30. System.out.println(toFirstChar(sBuilder.toString().replaceAll("[^(\\u4e00-\\u9fa5)]", "")));
  31. System.out.println(toPinyin(sBuilder.toString().replaceAll("[^(\\u4e00-\\u9fa5)]", "")));
  32. }
  33. /**
  34. * 输入中文字符串 输出各汉字的首字母组成的字符串
  35. * @param chinese
  36. * @return
  37. */
  38. public static String toFirstChar(String chinese) {
  39. String pinyinString = "";
  40. char[] newchar = chinese.toCharArray();
  41. HanyuPinyinOutputFormat hypy = new HanyuPinyinOutputFormat();
  42. hypy.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  43. //hypy.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  44. hypy.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  45. for(int i = 0;i < newchar.length;i++) {
  46. if(newchar[i]>128) {
  47. try {
  48. pinyinString += PinyinHelper.toHanyuPinyinStringArray(newchar[i], hypy)[0].charAt(0);
  49. } catch (BadHanyuPinyinOutputFormatCombination e) {
  50. e.printStackTrace();
  51. }
  52. }else {
  53. pinyinString += newchar[i];
  54. }
  55. }
  56. return pinyinString;
  57. }
  58. /**
  59. * 输入中文字符串 输出各汉字的拼音全拼
  60. * @param chinese
  61. * @return
  62. */
  63. public static String toPinyin(String chinese) {
  64. String pinyinString = "";
  65. char[] newchar = chinese.toCharArray();
  66. HanyuPinyinOutputFormat hypy = new HanyuPinyinOutputFormat();
  67. hypy.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  68. hypy.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  69. for(int i = 0;i < newchar.length;i++) {
  70. if(newchar[i]>128) {
  71. try {
  72. pinyinString += PinyinHelper.toHanyuPinyinStringArray(newchar[i], hypy)[0];
  73. } catch (BadHanyuPinyinOutputFormatCombination e) {
  74. e.printStackTrace();
  75. }
  76. }else {
  77. pinyinString += newchar[i];
  78. }
  79. }
  80. return pinyinString;
  81. }
  82. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/357555?site
推荐阅读
相关标签
  

闽ICP备14008679号