2014-04-07 13 views
6

Các mã sau đây:NSNumberFormatter: đánh vần ra một số với VÀ hạt (chính tả Anh)

AVSpeechSynthesizer * speechSynthesizer = [[AVSpeechSynthesizer alloc] init]; 
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString: @"112"]; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"]; 
speechSynthesizer speakUtterance:utterance]; 

kết quả với các thiết bị nói: "một trăm mười hai" (chính tả Anh)

Nhưng nếu thay vào đó bạn chuyển ngữ số 112:

NSString * wordNumber = nil; 
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en-GB"]]; 
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle]; 
wordNumber = [numberFormatter stringFromNumber:@(112)]; 

bây giờ wordNumber chứa "một trăm mười hai" (không có hạt và hạt).

Vì vậy:

@"112" -> AVSpeechSynthesizer -> "one hundred and twelve" 
@"112" -> NSNumberFormatter -> "one hundred twelve" 

Làm thế nào tôi có thể transliterate một số với hạt, tức là, chính tả Anh?

+0

Đối số cho 'stringFromNumber' phải là' @ 112' thay vì chuỗi ký tự. – blackbird

+0

có thể trùng lặp của [Có thể đánh vần số trong các từ bằng dấu tách không?] (Http://stackoverflow.com/questions/12250126/is-it-possible-to-spell-out-numbers-in-words- với dấu phân tách) –

Trả lời

1

Tôi tin rằng bạn sẽ cần tự làm điều này. Tôi đã không thể sản xuất kết quả mong muốn của bạn hoặc tìm bất kỳ tài nguyên nào cho phép tôi làm như vậy.

Tôi đã liên kết với câu hỏi minh họa cách thực hiện việc này theo cách thủ công.

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

0

Huh, bạn không thể làm điều này?

AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"112"]; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-GB"]; 
NSString *transliteration = utterance.speechString; 
Các vấn đề liên quan