Man*_*ani 7 objective-c nsstring ios
简单,可能会问很多时间,但这个小技巧.我们知道,NSString不适用于hasPrefix:方法的区分大小写.
NSString *string = @"Xyzabcdedfghij";
NSString *substring = @"xyz";
if ([string hasPrefix:substring])
NSLog(@"string has prefix "); // won't get here.
Run Code Online (Sandbox Code Playgroud)
Question is: 是否有任何内置方法可以解决此问题?我的意思是,hasPrefix:区分大小写?
我至少可以使用以下答案.但是想知道是否有比这更好的方法..?
已知答案:(租赁案例)
if ([[test substringWithRange:NSMakeRange(0,3)] caseInsensitiveCompare:@"xyz"] == NSOrderedSame) {
// ....
}
Run Code Online (Sandbox Code Playgroud)
tro*_*foe 32
来自Apple自己:
NSString *searchString = @"age";
NSString *beginsTest = @"Agencies";
NSRange prefixRange = [beginsTest rangeOfString:searchString
options:(NSAnchoredSearch | NSCaseInsensitiveSearch)];
// prefixRange = {0, 3}
NSString *endsTest = @"BRICOLAGE";
NSRange suffixRange = [endsTest rangeOfString:searchString
options:(NSAnchoredSearch | NSCaseInsensitiveSearch | NSBackwardsSearch)];
// suffixRange = {6, 3}
Run Code Online (Sandbox Code Playgroud)
这可以包含在一个易于使用的方法中:
- (BOOL) string:(NSString *)string
hasPrefix:(NSString *)prefix
caseInsensitive:(BOOL)caseInsensitive {
if (!caseInsensitive)
return [string hasPrefix:prefix];
const NSStringCompareOptions options = NSAnchoredSearch|NSCaseInsensitiveSearch;
NSRange prefixRange = [string rangeOfString:prefix
options:options];
return prefixRange.location == 0 && prefixRange.length > 0;
}
Run Code Online (Sandbox Code Playgroud)
Vol*_*ker 27
您始终可以lowercaseString在两个字符串上使用,从而强制使用相同的大小写.所以举个例子
[[string lowercaseString] hasPrefix:[substring lowercaseString]];
Run Code Online (Sandbox Code Playgroud)
讨厌的方法是小写两个字符串,而不是使用hasPrefix例如
[[mainString lowercaseString] hasPrefix:[stringToFind lowercaseString]];
Run Code Online (Sandbox Code Playgroud)
斯威夫特5:
extension String {
public func hasPrefixIgnoringCase(_ prefix: String) -> Bool {
range(of: prefix, options: [.anchored, .caseInsensitive]) != nil
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
"Hello".hasPrefixIgnoringCase("hEl") // return true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7305 次 |
| 最近记录: |