【问题标题】:IOS/Objective-C: Case Insenstive Search using StringByReplacingOccurenceOfStringIOS/Objective-C:使用 StringByReplacingOccurrencesOfString 进行不区分大小写的搜索
【发布时间】:2019-02-16 10:10:49
【问题描述】:

我对不区分大小写的 NSString 搜索感到困惑。

我收集了一个普通的stringByReplacingOccurrencesOfString 总是区分大小写:

[myString stringByReplacingOccurrencesOfString:verb withString:@" "];

但是有一个变体stringByReplacingOccurencesofString options: range: 有一个不区分大小写的选项。

  - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement 
                                           options:(NSStringCompareOptions)options 
                                             range:(NSRange)searchRange;

我尝试指定范围时出错:nil。范围指的是什么以及我如何知道要指定的范围,如果我不知道是否会找到搜索字符串,则在上面的示例中为 X Y?

提前感谢您提供任何见解和建议。

【问题讨论】:

  • Range 参数不是对象类型,因此错误为 nil。

标签: ios objective-c nsstring


【解决方案1】:

如果您没有要查找的特定范围,则可以传入整个字符串的范围。要获取字符串的整个范围,可以使用[string rangeOfString:string]NSMakeRange(0, string.length)

NSString *newString = [oldString stringByReplacingOccurrencesOfString:stringToReplace 
                           withString:replacementString 
                           options:NSCaseInsensitiveSearch 
                           range:NSMakeRange(0, string.length)];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 2010-09-12
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多