zoukankan      html  css  js  c++  java
  • 字符大小写转换,汉字转拼音

    汉字转拼音使用到了 pinyin4j

    maven依赖:

    <dependency>
      <groupId>com.belerweb</groupId>
      <artifactId>pinyin4j</artifactId>

      <version>2.5.0</version>

    </dependency>

    或者:

    <dependency>
      <groupId>net.sourceforge.pinyin4j</groupId>
      <artifactId>pinyin4j</artifactId>

      <version>2.5.0</version>

    </dependency>

    /**
    * 中文转汉语拼音
    * @param chinese
    * @param isPure true:只保留中文和英文 false:保留中英文和其他字符
    * @return 拼音全部小写,拼音之间以空格分隔
    */
    public static String chinesePaseSpell(String chinese,boolean isPure) {
      StringBuilder result = new StringBuilder();
      if(StringUtils.isNotBlank(chinese)) {
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
        for (int i = 0; i < chinese.length(); i++) {
          char c = chinese.charAt(i);
          try {
            if (String.valueOf(c).matches("[u4e00-u9fa5]+")){// 如果字符是中文,则将中文转为汉语拼音
              result.append(PinyinHelper.toHanyuPinyinStringArray(c, defaultFormat)[0]).append(HELPERSPACE);
            } else if(String.valueOf(c).matches("[a-zA-Z]")) {//如果字符是英文,则直接追加
              result.append(String.valueOf(c));
            } else {// 如果字符不是中英文,则进行判断
              result.append(isPure ? "" : String.valueOf(c));
            }
          } catch (BadHanyuPinyinOutputFormatCombination e) {
            e.printStackTrace();
          }
        }
      }
      return result.toString().trim();
    }

    /**
    * 根据空格分割字符串,返回每个单词首字母拼接的字符串
    */
    public static String getFirstCharBySpace(String str) {
      if(StringUtils.isBlank(str)) return str;
      StringBuilder result = new StringBuilder();
      String[] words = str.split(HELPERSPACE);
      for(String word : words) {
        if(StringUtils.isBlank(word)) continue;
        result.append(word.charAt(0));
      }
      return result.toString();
    }

    /**转大写**/
    private static char charToUpperCase(char ch){
      if(ch <= 122 && ch >= 97){
        ch -= 32;
      }
      return ch;
    }
    /***转小写**/
    private char charToLowerCase(char ch){
      if(ch <= 90 && ch >= 65){
        ch += 32;
      }
      return ch;
    }

    /**设置xml文件属性的值  (xml文件是一个字符串的形式)*/

    public static String resetXmlProperty(String xmlStr,String companySpell,String projectName){

       //需要加入相应的try catch

      StringReader sr = new StringReader(xmlStr); 

      InputSource is = new InputSource(sr); 

      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder=factory.newDocumentBuilder();
      Document doc = builder.parse(is);
      NodeList nodes = doc.getElementsByTagName("category");
      for(int i=0;i<nodes.getLength();i++){
        Element category=(Element) nodes.item(i);
        String oldValue = category.getAttribute("clazz");
        //修改属性
        category.setAttribute("clazz", "目标值");
      }
      TransformerFactory tf = TransformerFactory.newInstance();
      Transformer t = tf.newTransformer();
      ByteArrayOutputStream bos = new ByteArrayOutputStream();
      t.transform(new DOMSource(doc), new StreamResult(bos));
      xmlStr = bos.toString();

      return xmlStr;

    }

    听说学习能够让青春永驻。
  • 相关阅读:
    oracle中去掉文本中的换行符、回车符、制表符
    oracle中的exists和not exists和in用法详解
    将异常(getStackTrace)转化成String
    树的深度优先遍历和广度优先遍历的原理和java实现代码
    extjs4.0 treepanel节点的选中、展开! 数据的重新加载
    揭秘对象
    JVM由浅入深
    语法糖
    Java的技术体系结构
    菜鸟笔记 -- Chapter 09 常见类和接口
  • 原文地址:https://www.cnblogs.com/chenyf/p/8400232.html
Copyright © 2011-2022 走看看