weixin_39798497
weixin_39798497
2020-11-29 16:02

多音字

能识别常州市,不能识别长沙市,长春市,还有其他个别的也是这样!大神 ,应该怎么改呀,谢谢~

该提问来源于开源项目:mcxtzhang/SuspensionIndexBar

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • weixin_39918128 weixin_39918128 4月前

    非常感谢你!

    | | eclipseandroid | | eclipseandroid.com | 签名由网易邮箱大师定制 在2019年6月18日 17:24,Z 写道:

    public IIndexBarDataHelper convert(List<? extends BaseIndexPinyinBean> datas, Context context) {

    if (null == datas || datas.isEmpty()) {
    
        return this;
    
    }
    
    int size = datas.size();
    
    for (int i = 0; i < size; i++) {
    
        BaseIndexPinyinBean indexPinyinBean = datas.get(i);
    
        StringBuilder pySb = new StringBuilder();
    
        if (pySb.toString().contains("ZHONGQING")) {
    
            pySb.toString().replace("ZHONGQING", "CHONGQING");
    
        }
    
        //add by zhangxutong 2016 11 10 如果不是top 才转拼音,否则不用转了
    
        if (indexPinyinBean.isNeedToPinyin()) {
    
            String target = indexPinyinBean.getTarget();//取出需要被拼音化的字段
    
    
    
            //遍历target的每个char得到它的全拼音
    
            for (int i1 = 0; i1 < target.length(); i1++) {
    
                //利用TinyPinyin将char转成拼音
    
                //查看源码,方法内 如果char为汉字,则返回大写拼音
    
                //如果c不是汉字,则返回String.valueOf(c)
    
                pySb.append(Pinyin.toPinyin(target.charAt(i1)).toUpperCase());
    
            }
    
            if (pySb.toString().equals("ZHONGQING")) {
    
                indexPinyinBean.setBaseIndexPinyin("CHONGQING");//修改重庆
    
            } else if (pySb.toString().equals("ZHANGCHUN")) {
    
                indexPinyinBean.setBaseIndexPinyin("CHANGCHUN");//修改长春
    
            } else {
    
                indexPinyinBean.setBaseIndexPinyin(pySb.toString());//设置城市名全拼音
    
            }
    
        } else {
    
            //pySb.append(indexPinyinBean.getBaseIndexPinyin());
    
        }
    
    }
    
    return this;
    

    }

    修改之前确认错误的多音是什么再进行修改

    — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

    点赞 评论 复制链接分享
  • weixin_39800062 weixin_39800062 4月前
    
    public IIndexBarDataHelper convert(List<? extends BaseIndexPinyinBean> datas, Context context) {
        if (null == datas || datas.isEmpty()) {
            return this;
        }
        int size = datas.size();
        for (int i = 0; i < size; i++) {
            BaseIndexPinyinBean indexPinyinBean = datas.get(i);
            StringBuilder pySb = new StringBuilder();
            //add by zhangxutong 2016 11 10 如果不是top 才转拼音,否则不用转了
            if (indexPinyinBean.isNeedToPinyin()) {
                String target = indexPinyinBean.getTarget();//取出需要被拼音化的字段
    
                //遍历target的每个char得到它的全拼音
                for (int i1 = 0; i1 < target.length(); i1++) {
                    //利用TinyPinyin将char转成拼音
                    //查看源码,方法内 如果char为汉字,则返回大写拼音
                    //如果c不是汉字,则返回String.valueOf(c)
                    pySb.append(Pinyin.toPinyin(target.charAt(i1)).toUpperCase());
                }
                if (pySb.toString().equals("ZHONGQING")) {
                    indexPinyinBean.setBaseIndexPinyin("CHONGQING");//修改重庆
                } else if (pySb.toString().equals("ZHANGCHUN")) {
                    indexPinyinBean.setBaseIndexPinyin("CHANGCHUN");//修改长春
                } else {
                    indexPinyinBean.setBaseIndexPinyin(pySb.toString());//设置城市名全拼音
                }
            } else {
                //pySb.append(indexPinyinBean.getBaseIndexPinyin());
            }
        }
        return this;
    }
    

    修改之前确认错误的多音是什么再进行修改

    点赞 评论 复制链接分享
  • weixin_39918128 weixin_39918128 4月前

    要修改IndexBar源码,将源码的 Pinyin 依赖升级,还要添加 Pinyin 的两个依赖,最后修改 IndexBarDataHelperImpl 这个类 convert方法里面的 Pinyin.toPinyin

    点赞 评论 复制链接分享
  • weixin_39844590 weixin_39844590 4月前

    现在重庆市对应到Z,应该对应到C的啊,怎么处理呢

    点赞 评论 复制链接分享
  • weixin_39549110 weixin_39549110 4月前

    可以在特殊的城市前面加上一个谐音字,如长沙,写成常长沙,在显示的时候进行判断把常去掉就好了

    点赞 评论 复制链接分享
  • weixin_39761647 weixin_39761647 4月前

    遇到同样问题,厦门对于字母应该是- X,但是对应到了S

    点赞 评论 复制链接分享
  • weixin_39603397 weixin_39603397 4月前

    遇到同样的问题,还是tinypinyin库的问题吧,现在依赖远程库,不能改源码啊。

    点赞 评论 复制链接分享

为你推荐