2017-02-27 138 views
2

試圖找到一種方法來轉換純英文數字(例如,一,二......)爲INT(如,1,2 ...)轉換NumberFormatter.Style.spellOut爲Int

我知道,有辦法使用

numberFormatter:NumberFormatter = NumberFormatter() 
numberFormatter.numberStyle = NumberFormatter.Style.spellOut 
var string = numberFormatter.string(from: 3) // "three" 

是否有這個轉換的任何相反的方式從int轉換爲英語?

我試圖避免使用字符串數組一樣["One", "Two"..]

回答

2

數字格式化是雙向的,所以你可以用:

let num = numberFormatter.number(from: string) 

但是,你需要採取一些照顧,使確定它與正向輸出完全一致。 "three"會翻譯成3,但"Three"不會。

正如Sulthan所指出的那樣,這對格式化程序的區域設置是非常敏感的(如果需要,您可以將其設置爲與用戶區域設置不同)。它強烈地假設來自相同格式化器的輸入和輸出匹配。

+1

這對語言環境也非常敏感。 – Sulthan

+0

謝謝!正是我在找什麼 –