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"]);

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...