方法的目的是字符串的音译,例如:афиваў=> 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
?
字符串是不可变的,因此您无法更改其中的任何文本.所以你可以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(); }