IOS/Objective-C:使用 StringByReplacingOccurrencesOfString 进行不区分大小写的搜索
IOS/Objective-C: Case Insenstive Search using StringByReplacingOccurenceOfString
我对不区分大小写的 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?
提前感谢您的任何见解和建议。
如果您没有要查找的特定范围,则可以传入整个字符串的范围。要获取字符串的整个范围,您可以使用 [string rangeOfString:string]
或 NSMakeRange(0, string.length)
.
NSString *newString = [oldString stringByReplacingOccurrencesOfString:stringToReplace
withString:replacementString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, string.length)];
我对不区分大小写的 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?
提前感谢您的任何见解和建议。
如果您没有要查找的特定范围,则可以传入整个字符串的范围。要获取字符串的整个范围,您可以使用 [string rangeOfString:string]
或 NSMakeRange(0, string.length)
.
NSString *newString = [oldString stringByReplacingOccurrencesOfString:stringToReplace
withString:replacementString
options:NSCaseInsensitiveSearch
range:NSMakeRange(0, string.length)];