【发布时间】:2014-04-07 19:20:15
【问题描述】:
以下代码:
AVSpeechSynthesizer * speechSynthesizer = [[AVSpeechSynthesizer alloc] init];
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString: @"112"];
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"];
speechSynthesizer speakUtterance:utterance];
设备显示:“一百和十二”(英式拼写)
但如果你转写数字 112:
NSString * wordNumber = nil;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-GB"]];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
wordNumber = [numberFormatter stringFromNumber:@(112)];
现在 wordNumber 包含“112”(不带 and 助词)。
所以:
@"112" -> AVSpeechSynthesizer -> "one hundred and twelve"
@"112" -> NSNumberFormatter -> "one hundred twelve"
如何用and小词转写数字,即英式拼写?
【问题讨论】:
-
stringFromNumber的参数应该是@112而不是字符串文字。
标签: ios objective-c nsnumberformatter avspeechsynthesizer