首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将波斯语/阿拉伯语的数字转换成英语的Kotlin数字?

如何将波斯语/阿拉伯语的数字转换成英语的Kotlin数字?
EN

Stack Overflow用户
提问于 2020-09-21 09:09:46
回答 2查看 1.3K关注 0票数 7

如何用科特林语将波斯语/阿拉伯语数字转换成英语?我在java中看到了类似的qustions,但它不符合我的要求。我想将日期作为字符串传递给web服务。当我在使用波斯语的设备中获得日期时,本地化的数字是波斯语,而服务器无法将此字符串转换为DateTime。所以我需要把所有的数字转换成英语。以下是我在带有波斯语本地化的设备中接收到的日期:

“۲·۲·/·۸/۲۱”

这些是波斯语/阿拉伯语的数字

(·-> 0) (۱-> 1) (۲-> 2) (۳-> 3) (۴-> 4) (۵-> 5) (۶-> 6) (۷-> 7) (۸-> 8) (۵-> 9)

我需要在科特林找点乐子来表演这个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-23 18:51:51

最后,下面的函数解决了我的问题:

代码语言:javascript
复制
fun PersianToEnglish(persianStr: String):String {
            var result = ""
            var en = '0'
            for (ch in persianStr) {
                en = ch
                when (ch) {
                    '۰' -> en = '0'
                    '۱' -> en = '1'
                    '۲' -> en = '2'
                    '۳' -> en = '3'
                    '۴' -> en = '4'
                    '۵' -> en = '5'
                    '۶' -> en = '6'
                    '۷' -> en = '7'
                    '۸' -> en = '8'
                    '۹' -> en = '9'
                }
                result = "${result}$en"
            }
            return result
        }
票数 2
EN

Stack Overflow用户

发布于 2020-09-21 09:16:48

您可以使用NumberFormat,提供适当的区域设置。

代码语言:javascript
复制
//explode date by slash character
var delimiter = "/"
val parts = yourDate.split(delimiter) 

// then you check every element in parts array

NumberFormat nf = NumberFormat.getInstance(Locale.ENGLISH);
...
for (int i = 0; i < a.length; ++i) {
    output.println(nf.format(myNumber[i]) + "; ");
}

参考资料:NumberFormat文档地区文档

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63989275

复制
相关文章

相似问题

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