2016-09-08 4 views
2

Я получаю следующее сообщение об ошибке от GPS:Android конвертировать арабский номер на английский номер

Fatal Exception: java.lang.NumberFormatException 
Invalid double: "-٣٣٫٩٣٨٧٤" 

Теперь это из-за ошибки, которую я получил от пользователя через ткань. Это похоже на арабский, поэтому я предполагаю, что это произойдет только в том случае, если у вас установлен язык или ваша сим-карта? Можно ли заставить gps отправлять символы в диапазоне 0-9? Или я могу как-то исправить это?

+0

почему вы не конвертировать арабский номер на английском языке? – Amy

+0

как? это в основном то, что я прошу, в случае, если это произойдет, как я могу перевести это на английские номера? без интернета –

ответ

7

Попробуйте это:

String number = arabicToDecimal("۴۲"); // number = 42; 

private static final String arabic = "\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9"; 
private static String arabicToDecimal(String number) { 
    char[] chars = new char[number.length()]; 
    for(int i=0;i<number.length();i++) { 
     char ch = number.charAt(i); 
     if (ch >= 0x0660 && ch <= 0x0669) 
      ch -= 0x0660 - '0'; 
     else if (ch >= 0x06f0 && ch <= 0x06F9) 
      ch -= 0x06f0 - '0'; 
     chars[i] = ch; 
    } 
    return new String(chars); 
} 
+0

Большое спасибо, это работает !! –

+1

счастливы кодирования. :) – Amy