1

入力から数値を取得するペルシャ語の Android アプリケーションに取り組んでいEditTextます。問題は、にカスタム書体を使用していて、その中に数値を取得しようとすると、メソッドをEditText使用して double に変換しようとすると、 .LogCatの文字列としての値を取得すると、ペルシャ文字の数字。奇妙なことに、コード内に二重の数字を挿入すると、この問題が発生し、ユーザーがその数字を入力すると、すべて問題ありません! この問題を解決するためのアイデアはありますか? ファルシ数字の文字列を double に変換する方法はありますか? ご協力ありがとうございました。Double.ValueOfNumberFormatExceptionEditTextEditText

4

1 に答える 1

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());
于 2016-07-27T08:07:09.033 に答える