如何在Java字符串中将西里尔字母转换为英语拉丁语?

如何在Java字符串中将西里尔字母转换为英语拉丁语?,java,letters,Java,Letters,我有字符串a=“L1-23МааааааVPNааааааааааACTELIS Agregator alternativana 8-/208” 我想为我的每个字符串检查字符串中是否有一些西里尔字母,并将它们转换为英语: 输出应如下所示: L1-23偏头痛患者和患者8-/208 谢谢 我在stackoverflow上找到了这个方法,它是用来将西里尔语(俄语)转换成拉丁语的(但如果需要的话,你可以用另一种方式转换)。我对它进行了一些调整,使其与马其顿西里尔语兼容(我相信这正是您所需要的)。这是:

我有字符串a=“L1-23МааааааVPNааааааааааACTELIS Agregator alternativana 8-/208”

我想为我的每个字符串检查字符串中是否有一些西里尔字母,并将它们转换为英语:

输出应如下所示:

L1-23偏头痛患者和患者8-/208


谢谢

我在stackoverflow上找到了这个方法,它是用来将西里尔语(俄语)转换成拉丁语的(但如果需要的话,你可以用另一种方式转换)。我对它进行了一些调整,使其与马其顿西里尔语兼容(我相信这正是您所需要的)。这是:

public static String convertCyrilic(String message){
    char[] abcCyr =   {' ','а','б','в','г','д','ѓ','е', 'ж','з','ѕ','и','ј','к','л','љ','м','н','њ','о','п','р','с','т', 'ќ','у', 'ф','х','ц','ч','џ','ш', 'А','Б','В','Г','Д','Ѓ','Е', 'Ж','З','Ѕ','И','Ј','К','Л','Љ','М','Н','Њ','О','П','Р','С','Т', 'Ќ', 'У','Ф', 'Х','Ц','Ч','Џ','Ш','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8','9','/','-'};
    String[] abcLat = {" ","a","b","v","g","d","]","e","zh","z","y","i","j","k","l","q","m","n","w","o","p","r","s","t","'","u","f","h", "c",";", "x","{","A","B","V","G","D","}","E","Zh","Z","Y","I","J","K","L","Q","M","N","W","O","P","R","S","T","KJ","U","F","H", "C",":", "X","{", "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","1","2","3","4","5","6","7","8","9","/","-"};
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < message.length(); i++) {
        for (int x = 0; x < abcCyr.length; x++ ) {
            if (message.charAt(i) == abcCyr[x]) {
                builder.append(abcLat[x]);
            }
        }
    }
    return builder.toString();
}

字符串的编码是什么?你是用保加利亚字母编码的吗?这和我必须为马其顿人做的事情很相似,我只是用开关实现了这样的事情。我几乎可以肯定没有预先编写的库,因为不同语言的音译可能不同。毕竟,你只需要在switch语句中写30个字母,你就会得到你想要的。30+30(小写和大写字母是吗?)好的,我认为这是可以接受的。你能给我一些密码吗?谢谢还有一个问题-你对英语“C”有什么不同?我想这也是保加利亚语中的S?因此,如何告诉它,如果这是英语C(如单词“Case”)不转换,如果它是西里尔语C,则将其更改为S(在示例中,Сааааааa应为Situacija)。
String converted = convertCyrillic(a);