[英]Swift Numbers Name Text to Int
我剛剛實現了 SFSpeechRecognizer,因為我希望它指定一些數字,但我遇到的問題是,如果我說“一”,則 result.bestTranscription.formattedString 是“一”,但如果我說“十”,結果拋出“10”,我怎樣才能設法得到由實際數字而不是交響樂“一”表示的個位數數字。
您可以使用 NumberFormatter 將numberStyle
設置為.spellOut
並使用其number(from: String)
將您的字符串轉換為數字。 如果您需要來自該數字的字符串,只需從中初始化一個新字符串。 確保您是否只想檢測英語單詞(不區分語言環境)將格式化程序語言環境設置為“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
測試另一種語言/地區
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.