尝试找到一种方法将纯英文数字(例如,一,二......)转换为Int(例如,1,2 ......)
我知道有办法使用
从Int转换为英语numberFormatter:NumberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.spellOut
var string = numberFormatter.string(from: 3) // "three"
有没有相反的转换方式?
我试图避免使用像["One", "Two"..]
答案 0 :(得分:2)
数字格式化程序可以双向工作,因此您只需使用:
let num = numberFormatter.number(from: string)
但是你需要注意确保它与前进方向的输出完全匹配。 "three"
会转换为3,但"Three"
会赢得
正如Sulthan所说,这对格式化程序的区域设置绝对敏感(如果需要,可以将其设置为与用户的区域设置不同)。强烈假设同一格式化程序的输入和输出匹配。