[英]Swift Numbers Name Text to Int
我刚刚实现了 SFSpeechRecognizer,因为我希望它指定一些数字,但我遇到的问题是,如果我说“一”,则 result.bestTranscription.formattedString 是“一”,但如果我说“十”,结果抛出“10”,我怎样才能设法得到由实际数字而不是交响乐“一”表示的个位数数字。
You can use NumberFormatter setting numberStyle
to .spellOut
and use its number(from: String)
to convert your string to number.您可以使用 NumberFormatter 将
numberStyle
设置为.spellOut
并使用其number(from: String)
将您的字符串转换为数字。 If you need a string from that number just initialise a new string from it.如果您需要来自该数字的字符串,只需从中初始化一个新字符串。 Make sure if you only want to detect English words (not locale sensitive) to set the formatter locale to "en_US_POSIX"
确保您是否只想检测英语单词(不区分语言环境)将格式化程序语言环境设置为“en_US_POSIX”
let string = "one"
let numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "en_US_POSIX") // if you dont set locale it will use current locale so it wont detect one if the language it is not english at the devices locale
numberFormatter.numberStyle = .spellOut
numberFormatter.number(from: string) // 1
Testing another language/locale测试另一种语言/地区
let string = "um"
let numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "pt_BR")
numberFormatter.numberStyle = .spellOut
numberFormatter.number(from: string) // 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.