【问题标题】:NSNumberFormatter: spelling out a number with AND particle (British spelling)NSNumberFormatter:用 AND 粒子拼出一个数字(英式拼写)
【发布时间】: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小词转写数字,即英式拼写?

【问题讨论】:

标签: ios objective-c nsnumberformatter avspeechsynthesizer


【解决方案1】:

我相信你需要自己做这件事。我无法产生您想要的结果或找到任何允许我这样做的资源。

我已链接到一个演示如何手动执行此操作的问题。

Is it possible to spell out numbers in words with a separator?

【讨论】:

    【解决方案2】:

    呃,你不能就这样吗?

    AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"112"];
    utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"];
    NSString *transliteration = utterance.speechString;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-05
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      相关资源
      最近更新 更多