JAVA/安卓汉字转拼音的方法_白菜程序员2.0.0.116的博客-程序员秘密_安卓汉字转拼音jar包

技术标签: 安卓  java  字符串  

此贴仅作为记录本小白学习过程中碰到的问题及找到的解决方法,不作为他人的参考资料,主要是我会写的很简略,如果有人想交流可以留言。

最近在写安卓代码的时候碰到了汉字转拼音的问题,看网上很多解决方案都是使用pinyin4j.jar这个工具包来解决的,我也找到了解决的方法
下载pinyin4j.jar后,下边的代码就可以直接用啦
只要给getPinYin()方法传入汉字字符串str,返回值就是转换好的拼音字符串,非常好用

/**
     * 将汉字转换为全拼(每个字之间有一个空格)
     *
     * @param str 字符串,k 为1转大写拼音,否则小写拼音
     * @return String
     */
    public static String getPinYin(String str, int k) {
    
        HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
        // 默认小写
        outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        if (k == 1)
            outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);

        // 不显示拼音的声调
        outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        // outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);

        StringBuilder sb = new StringBuilder();
        try {
    
            for (char c : str.toCharArray()) {
    
                // 如果包含有中文标点除号,需要使用正则表达式
                if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
    
                    // if (c > 128) {
    
                    try {
    
                        sb.append(PinyinHelper.toHanyuPinyinStringArray(c,
                                outputFormat)[0] + " ");
                    } catch (NullPointerException e) {
    
                        sb.append(Character.toString(c) + " ");
                    }
                } else {
    
                    sb.append(Character.toString(c));
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination e) {
    
            e.printStackTrace();
        }
        return sb.toString();
    }

pinyin4j.jar建议谷歌搜索下载,或者别人的帖子了好像有官网,也可以试试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42795949/article/details/118019881

智能推荐

WebService CXF 获取请求IP_luckhouge的博客-程序员秘密

方法一:[code="java"]@Resource(name = "org.apache.cxf.jaxws.context.WebServiceContextImpl") private WebServiceContext context;HttpServletRequest httpRequest1 = (HttpServletRequest)context.getM...

如何判断UIViewController的视图是否可见_如何判断uiviewcontroller是否在屏幕上显示_asdfgh0077的博客-程序员秘密

我有一个标签栏应用程序,有很多视图。 有没有办法知道UIViewController中当前是否可以看到特定的UIViewController ? (寻找房产)

机器学习算法(3)之决策树算法_且行且安~的博客-程序员秘密

前言:首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。决策树与逻辑回归的分类区别也在于此,逻辑回归是将所有特征变换为概率后,通过大于某一概率阈值的划分为一类,小于某一概率阈值的为另一类;而决策树是对每一个特征做一个划分。另外逻辑回归只能找到线性分割(输入特征x与logit之间是线性的,除...

POJ 3076 Sudoku DLX精确覆盖_a sudoku grid is a 16x16 grid of cells grouped in _码代码的猿猿的AC之路的博客-程序员秘密

DLX精确覆盖模版题.....SudokuTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 4416 Accepted: 2143DescriptionA Sudoku grid is a 16x16 grid of c

Android手机软键盘确定键图标自定义_压机给给的博客-程序员秘密

在其他的应用中会看到这样的软键盘 确定键变成一个小放大镜表示搜索其实可以改变的有这些 这些actionid分别对应不同的图标在布局文件中是这么使用的` <EditText android:singleLine="true" android:id="@+id/et_search" android:layout_widt

缓存篇-Redisson的使用___Simon'的博客-程序员秘密

文章目录前言一、Redisson是什么?二、使用Redisson进行分布式锁改造1.引入pom依赖2.配置注入对象总结前言使用redisson进行redis客户端操作一、Redisson是什么?Redisson是一个在Redis的基础上实现的Java驻内存数据网络(In-Memory Data Grid)。不仅提供了一些列的分布式java常用对象,还提供了许多分布式服务。Redission提供了Redis最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离,集中精力在

随便推点

Android调用WebService的SoapFault异常_亚林瓜子的博客-程序员秘密

SoapObject soapObject = (SoapObject) envelope.getResponse();使用上面这个, SoapObject result = (SoapObject)envelope.bodyIn;这个是服务器那边没有搞定:1、 INFO/System.out(2185): SoapFault - faultcode: 'soapenv

sql执行计划[Oracle] 变量绑定_ducode的博客-程序员秘密

查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!    Parent-Child cursor (父子游标)      父游标:只要SQL语句文本相同,它们就对应同一个parent cursor。      子游标:在某些情况下,虽然SQL语句的文本相同,但是因为其它因素不同(这些因素可以在视图V$S...

python递归函数实现斐波那契_Python|递归函数之斐波那契数列_weixin_39526872的博客-程序员秘密

递归函数定义:如果一个函数在内部调自身,这个函数就是递归函数,递归函数的优点在于其定义简单,逻辑清晰明了,递归函数和for循环的作用效果有异曲同工之妙,for循环可以用递归来解决,但是for循环的逻辑关系没有递归清晰。问题描述(1)斐波那契数列(斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……前两项相加等...

漫画 | 揭密微信诞生记之民间传说_Python中文社区的博客-程序员秘密

据民间流传微信的诞生源于张小龙因得一扫地高僧指点,才有了微信的诞生,而这其中也少不了程序员们的付出,一起来看看它的故事吧~本期漫画灵感来源于《微信第 1 行代码曝光!》文章,部分情节仅为...

版本对比工具Beyond Compare使用介绍_版本比对_russ44的博客-程序员秘密

任何软件项目的版本管理都是至关重要,下面介绍一款版本比较的工具Beyond Comparehttp://www.beyondcompare.cc/xiazai.html下载中文版安装后安装后直接双击打开,主页面如下选择文件夹比较或文本比较选择两个文件夹直接选中邮件即可比较选择开始,然后将会显示比较结果直接双击某

java jpanel 居中_java将组件居中的方法_后期小雨的博客-程序员秘密

java将组件居中的方法发布时间:2020-05-18 13:53:04来源:亿速云阅读:379作者:小新今天小编给大家分享的是java将组件居中的方法,相信很多人都不太了解,为了让大家更加了解java将组件居中的方法,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。Java Swing 是一个为Java设计的GUI工具包。Swing是JAVA基础类的一部分。Swing包括了图形用户界...

推荐文章

热门文章

相关标签