在 Objective-C 中查找一个不区分大小写的字符串

发布于 2025-01-04 19:29:38 字数 410 浏览 3 评论 0原文

我的问题类似于 How do I check if a string contains another string in Objective-C?

如何检查string (NSString) 包含另一个较小的字符串但忽略大小写?

NSString *string = @"hello bla bla";

我希望得到类似的结果:

NSLog(@"%d",[string containsSubstring:@"BLA"]);

无论如何,有什么方法可以查找一个字符串是否包含另一个忽略大小写的字符串?但请不要将这两个字符串都转换为大写或小写。

My question is similar to How do I check if a string contains another string in Objective-C?

How can I check if a string (NSString) contains another smaller string but with ignoring case?

NSString *string = @"hello bla bla";

I was hoping for something like:

NSLog(@"%d",[string containsSubstring:@"BLA"]);

Anyway is there any way to find if a string contains another string with ignore case ? But please do not convert both strings to UpperCase or to LowerCase.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

决绝 2025-01-11 19:29:38

与链接中提供的答案类似,但使用 options

请参阅 Apple 文档

NSString *string = @"hello bla bla";

if ([string rangeOfString:@"BLA" options:NSCaseInsensitiveSearch].location == NSNotFound)
{
    NSLog(@"string does not contain bla");
} 
else 
{
    NSLog(@"string contains bla!");
}

As similar to the answer provided in the link, but use options.

See - (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask in Apple doc

NSString *string = @"hello bla bla";

if ([string rangeOfString:@"BLA" options:NSCaseInsensitiveSearch].location == NSNotFound)
{
    NSLog(@"string does not contain bla");
} 
else 
{
    NSLog(@"string contains bla!");
}
白云悠悠 2025-01-11 19:29:38

从 iOS 8 开始,您可以将 containsString:localizedCaseInsensitiveContainsString 方法添加到 NSString。

if ([string localizedCaseInsensitiveContainsString:@"BlA"]) {
    NSLog(@"string contains Case Insensitive bla!");
} else {
    NSLog(@"string does not contain bla");
}

From iOS 8 you can add the containsString: or localizedCaseInsensitiveContainsString method to NSString.

if ([string localizedCaseInsensitiveContainsString:@"BlA"]) {
    NSLog(@"string contains Case Insensitive bla!");
} else {
    NSLog(@"string does not contain bla");
}
云醉月微眠 2025-01-11 19:29:38
NSString *string = @"hello BLA";
if ([string rangeOfString:@"bla" options:NSCaseInsensitiveSearch].location == NSNotFound) {
    NSLog(@"string does not contain bla");
} else {
    NSLog(@"string contains bla!");
}
NSString *string = @"hello BLA";
if ([string rangeOfString:@"bla" options:NSCaseInsensitiveSearch].location == NSNotFound) {
    NSLog(@"string does not contain bla");
} else {
    NSLog(@"string contains bla!");
}
撩起发的微风 2025-01-11 19:29:38

方法

[string rangeOfString:@"bla" options:NSCaseInsensitiveSearch];

应该对你有帮助。

The method

[string rangeOfString:@"bla" options:NSCaseInsensitiveSearch];

should help you.

亣腦蒛氧 2025-01-11 19:29:38

您可以使用 -(NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask; 来获取子字符串的范围,mask 参数用于指定不区分大小写的匹配。

示例:

NSRange r = [str rangeOfString:@"BLA"
                       options:NSCaseInsensitiveSearch];

文档,该方法返回一个范围,如 {NSNotFound, 0} 当未找到子字符串时。

BOOL b = r.location == NSNotFound;

重要如果字符串为nil,此方法会引发异常。

You can use -(NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask; to get a range for a substring, the mask parameter is used to specify case insensitive match.

Example :

NSRange r = [str rangeOfString:@"BLA"
                       options:NSCaseInsensitiveSearch];

As stated in the documentation, the method returns a range like {NSNotFound, 0} when the substring isn't found.

BOOL b = r.location == NSNotFound;

Important this method raises an exception if the string is nil.

So要识趣 2025-01-11 19:29:38

对于 Swift 4:

extension String {
    func containsCaseInsensitive(string : String) -> Bool {
        return self.localizedCaseInsensitiveContains(string)
    }
}

用法:

print("Hello".containsCaseInsensitive(string: "LLO"))

输出:

true

For Swift 4:

extension String {
    func containsCaseInsensitive(string : String) -> Bool {
        return self.localizedCaseInsensitiveContains(string)
    }
}

Usage:

print("Hello".containsCaseInsensitive(string: "LLO"))

Output:

true
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文