如何用科特林语将波斯语/阿拉伯语数字转换成英语?我在java中看到了类似的qustions,但它不符合我的要求。我想将日期作为字符串传递给web服务。当我在使用波斯语的设备中获得日期时,本地化的数字是波斯语,而服务器无法将此字符串转换为DateTime。所以我需要把所有的数字转换成英语。以下是我在带有波斯语本地化的设备中接收到的日期:
“۲·۲·/·۸/۲۱”
这些是波斯语/阿拉伯语的数字
(·-> 0) (۱-> 1) (۲-> 2) (۳-> 3) (۴-> 4) (۵-> 5) (۶-> 6) (۷-> 7) (۸-> 8) (۵-> 9)
我需要在科特林找点乐子来表演这个。
发布于 2020-09-23 18:51:51
最后,下面的函数解决了我的问题:
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
}发布于 2020-09-21 09:16:48
您可以使用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文档,地区文档
https://stackoverflow.com/questions/63989275
复制相似问题