簡體   English   中英

Swift 數字名稱文本到 Int

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM