首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在android中将EditText中的unicode波斯语数字字符转换为双倍字符

在android中将EditText中的unicode波斯语数字字符转换为双倍字符
EN

Stack Overflow用户
提问于 2013-08-16 18:13:48
回答 1查看 1.8K关注 0票数 1

我正在开发一个波斯语言的android应用程序,它从EditText输入中获取一个数字。问题是,我为EditText使用了一个自定义字体,当我试图获取它中的数字并使用Double.ValueOf方法将它转换成双倍时,我得到了一个NumberFormatException.When,得到了LogCat中EditText作为字符串的值,这是带波斯语字符的数字。奇怪的是,当我在EditText中的代码中插入一个双号时,这个问题就会发生,当用户输入它的数字时,一切都好!有解决这个问题的办法吗?有什么方法可以将带波斯语数字字符的字符串转换成双字符?谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 08:07:09

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

代码语言:javascript
代码运行次数:0
运行
复制
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());

现在你可以用

代码语言:javascript
代码运行次数:0
运行
复制
Double.ValueOf(builder.toString());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18279669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档