Java中的音译.重新定义字符串中的每个字符

 吴之薇_1989_l5g_112 发布于 2023-01-29 19:28

方法的目的是字符串的音译,例如:афиваў=> afivaw.问题是:我不能使用charAt方法重新定义,因为有些字母要求被音译为两个符号'ø'=>"sh".我试试这个:

public static String belrusToEngTranlit (String text){
    char[] abcCyr = {'a','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'};
    String[] abcLat = {"a","b","v","g","d","jo","zh","z","i","k","l","m","n","p","r","s","t","u","w","f","h","ts","sh","sch","","e","ju","ja"};
    for (int i = 0; i < text.length(); i++) {
        for(int x = 0; x < abcCyr.length; x++ )
        if (text.charAt(i) == abcCyr[x]) {
            text.charAt(i) = abcLat[x];
        }
    }
    return text;
}

可能你可以推荐我的东西除外charAt

1 个回答
  • 字符串是不可变的,因此您无法更改其中的任何文本.所以你可以StringBuilder用来存储结果.见下面的代码.

    public static String belrusToEngTranlit (String text){
        char[] abcCyr = {'a','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'};
        String[] abcLat = {"a","b","v","g","d","jo","zh","z","i","k","l","m","n","p","r","s","t","u","w","f","h","ts","sh","sch","","e","ju","ja"};
    
        StringBuilder builder = new StringBuilder();
    
        for (int i = 0; i < text.length(); i++) {
            for(int x = 0; x < abcCyr.length; x++ )
            if (text.charAt(i) == abcCyr[x]) {
                builder.append(abcLat[x]);
            }
        }
        return builder.toString();
    }
    

    2023-01-29 19:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有