gpt4 book ai didi

java - 将 EditText 中的 unicode 波斯数字字符转换为 android 中的 double

转载 作者:行者123 更新时间:2023-11-30 03:25:47 25 4
gpt4 key购买 nike

我正在开发一个波斯语的 Android 应用程序,它从 EditText 输入中获取一个数字。问题是我正在为 EditText 使用自定义字体,当我尝试获取其中的数字并使用 Double.ValueOf 方法将其转换为 double 时,我得到一个 NumberFormatException。当我在 LogCat 中得到 EditText 的值作为字符串时,它是带有波斯语字符的数字。一件奇怪的事情是,当我在 EditText 的代码中插入一个双数时,就会出现这个问题,当用户输入它的数字时,一切正常!解决这个问题的任何想法?有没有办法将带有波斯数字字符的字符串转换为 double ?感谢您的帮助。

最佳答案

您可以使用此代码将您的波斯数字转换为标准数字:

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());

关于java - 将 EditText 中的 unicode 波斯数字字符转换为 android 中的 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18279669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com