2017-06-18 50 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 –

相關問題