将NumberFormatter.Style.spellOut转换为Int

时间:2017-02-27 14:20:48

标签: swift

尝试找到一种方法将纯英文数字(例如,一,二......)转换为Int(例如,1,2 ......)

我知道有办法使用

从Int转换为英语
numberFormatter:NumberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.spellOut
var string = numberFormatter.string(from: 3) // "three"

有没有相反的转换方式?

我试图避免使用像["One", "Two"..]

这样的String数组

1 个答案:

答案 0 :(得分:2)

数字格式化程序可以双向工作,因此您只需使用:

let num = numberFormatter.number(from: string)

但是你需要注意确保它与前进方向的输出完全匹配。 "three"会转换为3,但"Three"会赢得

正如Sulthan所说,这对格式化程序的区域设置绝对敏感(如果需要,可以将其设置为与用户的区域设置不同)。强烈假设同一格式化程序的输入和输出匹配。