ios – 将拼写的数字转换为数字

在Objective-C / Cocoa中,有没有办法将拼出的单词转换为NSNumber或多种语言的同等单词?

例如:

将3转换为3或将ocho转换为8(西班牙语).

也略有不同,但3 1/2至3.5

我可以编写自己的代码来执行此操作,但我希望有一种内置的方法来执行此操作.我希望避免使用多种语言翻译每个数字的翻译.

解决方法

NSNumberFormatter可以从文本转换为数字:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.numberStyle = NSNumberFormatterSpellOutStyle;

NSLog(@"%@",[formatter numberFromString:@"thirty-four"]);
NSLog(@"%@",[formatter numberFromString:@"three point five"]);

formatter.locale = [[NSLocale alloc]initWithLocaleIdentifier:[NSLocale localeIdentifierFromComponents:@{NSLocaleLanguageCode: @"es"}]];

NSLog(@"%@",[formatter numberFromString:@"ocho"]);

关于它能处理什么(它不会自动检测语言,如果你偏离预期的格式(例如“三十四”而不是“三十四”),分数等)存在严重的限制,但是对于狭窄的领域,它似乎做的工作.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...