如何在Kotlin中将波斯/阿拉伯数字转换为英文数字?

时间:2020-09-21 09:09:46

标签: android kotlin

如何在Kotlin中将波斯/阿拉伯数字转换为英语?我想将日期作为字符串传递给Web服务。当我在使用波斯语本地化数字的设备中获取日期时,是波斯语,并且服务器无法将此字符串转换为DateTime。因此,我需要将所有数字转换为英文。 这是我在波斯语本地化设备中收到的日期:

“ ۲۰۲۰/۰۸/۲۱”

这些是波斯/阿拉伯数字

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

我需要在Kotlin娱乐一下才能做到这一点。

2 个答案:

答案 0 :(得分:1)

您可以使用NumberFormat,以提供适当的语言环境。

//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 documentationLocale docs

答案 1 :(得分:0)

最后的波纹管功能解决了我的问题:

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
        }