2017-06-18 52 views
1

我知道如何使用NSFormatter数字将英文数字转换为波斯/阿拉伯数字,但问题是我有一个数组,并希望将数组中的所有数字转换为波斯/阿拉伯数字。如何在swift 3中使用数组中的波斯或阿拉伯数字的NSFormatter数字?

我该怎么做? 请帮忙。

这里是一个数字代码:

let numberFormatter = NumberFormatter() 
    numberFormatter.locale = Locale(identifier: "fa") 
    numberFormatter.numberStyle = NumberFormatter.Style.decimal 

    numberFormatter.string(from: NSNumber(value: checkNumber)) 
    let persianNumber = numberFormatter.string(from: NSNumber(value: checkNumber))! 

正如你看到的,我可以把一个号码(checkNumber是英文编号和persianNumber是波斯语/阿拉伯文数字)

+0

你想要一个新的数组?或者更换价值?你的问题是关于for循环吗? – Larme

+0

我只是想将数组中的英文数字转换为波斯文数字 –

回答

0

我不知道我理解你的问题,但我认为一个简单的for循环会做你想做的。

重要的是摆脱了可选String您从数字格式得到,因为你不能追加可选的字符串(String?)到字符串数组([String])的。当数字格式化程序的结果为nil时,可以使用零合并运算符(??)退回到空字符串("")。

let numberFormatter = NumberFormatter() 
numberFormatter.locale = Locale(identifier: "fa") 
numberFormatter.numberStyle = .decimal 

let arrayOfNumbers = [1, 2, 3] 
var arrayOfStrings = [String]() 

for number in arrayOfNumbers { 
    let string = numberFormatter.string(from: number as NSNumber) ?? "" 
    arrayOfStrings.append(string) 
} 

更好的是,您可以使用map函数而不是for循环。

let arrayOfStrings = arrayOfNumbers.map { (number) in 
    return numberFormatter.string(from: number as NSNumber) ?? "" 
} 
+0

多数民众赞成它!有效!非常感谢 !请投我的问题 –

+0

请再次帮我找到类似的问题的答案 https://stackoverflow.com/questions/44627982/how-to-use-persian-numbers-in-uitextfield-in-swift-3 –

相关问题