ios - 从 NSString 中删除所有非英文字符

标签 ios objective-c nsstring

我正在使用 Foursquare 的 API 检索一些景点名称。问题是,对于某些城市(如开罗、莫斯科、北京),景点的英文名称会附加到该国家/地区的语言名称中,因此例如开罗的景点将如下所示:

Wekalet Al-Ghouri Arts Center | وكالة السلطان الغوري

对于每个景点,我都使用 Flickr 的 API 查找在查询中使用名称的照片。但是,上面的字符串几乎没有结果,而仅查询“Wekalet Al-Ghouri Arts Centre”会给出很多结果。所以我的问题是,有没有办法从字符串中识别和删除非英语字符?提前感谢您的帮助:)

最佳答案

我的 hacky 解决方案:

NSString *stringWithForeignCharacters = @"Wekalet Al-Ghouri Arts Center | وكالة السلطان الغوري";
NSMutableCharacterSet *englishCharacterSet = [NSMutableCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-+ "];
// Add other such character sets as needed
[englishCharacterSet formUnionWithCharacterSet:[NSCharacterSet symbolCharacterSet]];
NSCharacterSet *foreignCharacters= [englishCharacterSet invertedSet];
NSString *filteredString= [[stringWithForeignCharacters componentsSeparatedByCharactersInSet:foreignCharacters] componentsJoinedByString:@""];

警告:对于复杂的字符串,这可能会很慢。

关于ios - 从 NSString 中删除所有非英文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628414/

相关文章:

objective-c - UiView 上的 UIBezierPath 在滚动 tableview 之前不会更新

ios - 创建类似于联系人应用程序的操作表

objective-c - NSString nslog 显示 "\n"换行符

iphone - 如何知道 iOS 中的 UITextField 是否有空格

ios - 呈现嵌入在导航 Controller 中的 ViewController

iphone - 如何处理 iOS 应用程序中的大量文本?

iphone - 使用 Objective c 在后台调用类方法

ios - 在 iOS 中解码 unicode 字符串

ios - 当其他应用程序中的声音正在播放时录音停止

ios - NSString 的不可见字符