Reputation: 1808
I have string a="L1-23Миграција од VPN и промена на брзина ACTELIS Agregator alternativna 8-/208";
I would like for every my string to check if there are some Cyrillic letters in string and to convert them to English:
Output should look:
L1-23Migracija od VPN i promena na brzina ACTELIS Agregator alternativna 8-/208
Thanks!
Upvotes: 6
Views: 6775
Reputation: 93
I found this method here on stackoverflow Transliteration from Cyrillic to Latin ICU4j java, it is for converting cyrillic(Russian) to latin (but you can convert it the other way around if needed). I tweaked it a bit so it's compatible for Macedonian Cyrillic(I believe that's what you need). Here it is:
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();
}
And then just use
String converted = convertCyrillic(a);
Upvotes: 2