gpt4 book ai didi

ios - NSString hasPrefix : function with case sensitivity

转载 作者:可可西里 更新时间:2023-11-01 03:21:58 24 4
gpt4 key购买 nike

很简单,可能会问很多次,但这个没什么技巧。我们知道,NSString 在 hasPrefix: 方法中不区分大小写。

NSString *string = @"Xyzabcdedfghij";
NSString *substring = @"xyz";
if ([string hasPrefix:substring])
NSLog(@"string has prefix "); // won't get here.

问题是: 是否有解决此问题的内置方法?我的意思是,hasPrefix: 区分大小写?

我至少可以使用以下答案。但是想知道是否有比这更好的方法..?

已知答案:(租赁案例)

if ([[test substringWithRange:NSMakeRange(0,3)] caseInsensitiveCompare:@"xyz"] == NSOrderedSame) {
// ....
}

最佳答案

来自 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}

这可以包装成一个易于使用的方法:

- (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;
}

关于ios - NSString hasPrefix : function with case sensitivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21988253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com