2013-08-16 4 views
1

EditText 입력에서 숫자를 가져 오는 페르시아어로 된 안드로이드 응용 프로그램에서 작업하고 있습니다. 문제는 내가 EditText에 대한 사용자 지정 서체를 사용하고 있는데 그 번호를 얻고 Double.ValueOf 메서드를 사용하여 두 번 변환하려고 할 때 NumberFormatException을 얻습니다. EditText의 값을 문자열로 가져옵니다. LogCat에서 그것은 페르시아 문자가있는 숫자입니다. 이상한 점은 EditText 코드에 이중 숫자를 삽입 할 때 발생하며 사용자가이 숫자를 넣으면 모든 것이 OK입니다! 이 문제를 해결하기위한 아이디어가 있습니까? 페르시아 숫자로 된 문자열을 이중으로 변환 할 수있는 방법이 있습니까? 도움 주셔서 감사합니다.edittext의 유니 코드 페르시아 숫자 문자를 안드로이드에서 이중으로 변환합니다.

답변

1

당신은 표준 번호에 페르시아어 번호를 변환하려면이 코드를 사용할 수 있습니다

지금
char[] arabicChars = {'٠','١','٢','٣','٤','٥','٦','٧','٨','٩'}; 
int arabic_zero_unicode= 1632; 
String str = "١٣٢٤٠٤٥٣"; 
StringBuilder builder = new StringBuilder(); 
boolean charFound=false; 
for(int i =0; i < str.length(); ++i) { 
    charFound=false; 
    for(int j=0;j<arabicChars.length;j++){ 
     if(str.charAt(i)==arabicChars[j]){ 
      builder.append((char)((int)str.charAt(i) + 48-arabic_zero_unicode)); 
      charFound=true; 
     } 
     if(!charFound) 
      builder.append(str.charAt(i)); 

    } 

} 

System.out.println("Number in English : "+builder.toString()); 

사용할 수

Double.ValueOf(builder.toString());