我在 Swift 中遇到了一个问题Hindi numeric set Integer value
这是关于我们如何将印地语转换为英语的任何数字值。
想知道我们如何将一种语言数字转换为另一种语言数字
示例:尝试将印地语数字转换为阿拉伯语
这是我在操场上试过的代码:
let string = "४"
let intParse1 = Int(string)
let numberFormat = NumberFormatter()
numberFormat.locale = Locale(identifier: "ar")
if let getOP = numberFormat.number(from: string) {
print("output is: ", getOP)
}
这是它仅以英文显示的输出
我已经搜索了这个问题,但没有找到这种特定的解决方案,所以发布了一个新问题。
注意:不是在寻找任何静态转换扩展或那种功能。
编辑:我不想要这种解决方案
编辑2:
我想知道为什么我们必须先将其转换为数字,然后再将其转换为阿拉伯语?,意味着必须先将其转换为英文吗?
说明: NumberFormatter
将数字转换为另一种语言的数字,而不是将一种语言的字符串转换为另一种语言。所以首先我们必须转换一种语言编号,然后再转换为另一种语言编号。
文档说明: 参考
NumberFormatter 的实例格式化包含 NSNumber 对象的单元格的文本表示,并将数值的文本表示转换为 NSNumber 对象。表示包括整数、浮点数和双精度数;浮点数和双精度数可以格式化为指定的小数位。NumberFormatter 对象还可以对单元格可以接受的数值施加范围。
直接将此扩展用于Swift 4:
extension String {
func convertToArbic () -> String? {
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "hi")
guard let number = formatter.number(from:self ) else{
return nil
}
formatter.locale = Locale(identifier: "ar")
guard let number2 = formatter.string(from: number) else{
return nil
}
return number2
}
}
// use
let string = "४"
if let arbNumber = string.convertToArbic() {
print(arbNumber)
}
else{
print("Unable to get arabic number")
}
输出:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句