输入汉字,自动转成汉语拼音。。。

Posted cainiaoxiaoxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入汉字,自动转成汉语拼音。。。相关的知识,希望对你有一定的参考价值。

汉字自动转换成拼音:

流程:

  1. 先引入相对应的jar包
<!-- pinyin4j -->
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>${pinyin4j.version}</version>
        </dependency>
  1. 编写一个工具类
public class PinyinUtils {

    // 返回一个拼音字符串,并且首字母大写
    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 (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) {
                        String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
                        output += temp[0];
                    } else
                        output += Character.toString(input[i]);
                }
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                e.printStackTrace();
            }
        } else {
            return "*";
        }
        return output;
    }

    public static void main(String[] args) {
        String yin = getPingYin("测试");
        System.out.println(yin);
    }
}
  1. 在控制器里面写一个对应的方法
/**
     * 把用户名转成拼音
     */
    @RequestMapping("changeChineseToPinyin")
    public Map<String,Object> changeChineseToPinyin(String username){
         Map<String,Object> map=new HashMap<>();
         if(null!=username) {
             map.put("value", PinyinUtils.getPingYin(username));
         }else {
             map.put("value", "");
         }
         return map;
    }
  1. 在前端界面进行展示
<div class="layui-form-item">
            <div class="layui-inline">
                <label class="layui-form-label">用户姓名</label>
                <div class="layui-input-inline">
                    <input type="text" name="name" id="username" lay-verify="required" autocomplete="off" placeholder="请输入用户姓名" class="layui-input">
                </div>
            </div>
            <div class="layui-inline">
               <label class="layui-form-label">登陆名称</label>
                <div class="layui-input-inline">
                    <input type="text" name="loginname" id="loginname" lay-verify="required"  autocomplete="off" placeholder="请输入登陆名称" class="layui-input">
                </div>
            </div>
        </div>

对应的js代码

//监听用户名的失去焦点事件
        $("#username").on("blur",function(){
            var username=$(this).val();
            $.get("/user/changeChineseToPinyin",{username:username},function(res){
                $("#loginname").val(res.value);
            })
        });

以上是关于输入汉字,自动转成汉语拼音。。。的主要内容,如果未能解决你的问题,请参考以下文章

如何自动给汉字加拼音

iOS 获取汉字的拼音 CFStringTransform

ios 中怎样将汉字转成nsdata

js中文汉字转拼音详细教程

js中文汉字转拼音详细教程

js中怎么好像有一个函数将汉字转成utf-8编码