一尘不染

如何在Swift中检查一个字符串是否包含另一个字符串?

swift

Objective-C代码中检查的子字符串NSString是:

NSString *string = @"hello Swift";
NSRange textRange =[string rangeOfString:@"Swift"];
if(textRange.location != NSNotFound)
{
    NSLog(@"exists");
}

但是我该如何在Swift中做到这一点?


阅读 1268

收藏
2020-07-07

共1个答案

一尘不染

您可以使用Swift进行完全相同的调用:

Swift 4和Swift 5

在Swift 4中,String是Character值的集合,在Swift 2和3中并不是这样,因此您可以使用以下更简洁的代码1:

let string = "hello Swift"
if string.contains("Swift") {
    print("exists")
}

迅捷3.0+

var string = "hello Swift"

if string.range(of:"Swift") != nil { 
    print("exists")
}

// alternative: not case sensitive
if string.lowercased().range(of:"swift") != nil {
    print("exists")
}

较早的斯威夫特

var string = "hello Swift"

if string.rangeOfString("Swift") != nil{ 
    println("exists")
}

// alternative: not case sensitive
if string.lowercaseString.rangeOfString("swift") != nil {
    println("exists")
}

我希望这是一个有用的解决方案,因为包括我在内的某些人通过致电遇到了一些奇怪的问题containsString()。1个

PS。别忘了import Foundation

脚注

  1. 请记住,在Strings上使用collection函数有一些边缘情况,这些情况可能会给您带来意想不到的结果,例如,在处理表情符号或其他带有重音字母的字素簇时。
2020-07-07