在Objective-C中,检查NSString子字符串的代码是:
NSString *string = @"hello Swift";
NSRange textRange =[string rangeOfString:@"Swift"];
if(textRange.location != NSNotFound)
{
NSLog(@"exists");
}
但是如何在Swift中做到这一点呢?
在Objective-C中,检查NSString子字符串的代码是:
NSString *string = @"hello Swift";
NSRange textRange =[string rangeOfString:@"Swift"];
if(textRange.location != NSNotFound)
{
NSLog(@"exists");
}
但是如何在Swift中做到这一点呢?
当前回答
检查它是否包含“Hello”
let s = "Hello World"
if s.rangeOfString("Hello") != nil {
print("Yes it contains 'Hello'")
}
其他回答
在这里的所有答案中,我认为它们要么不工作,要么有点hack(转换回NSString)。这个问题的正确答案很可能随着不同的beta版本而改变。
以下是我使用的方法:
let string: String = "hello Swift"
if string.rangeOfString("Swift") != nil
{
println("exists")
}
”!= nil”成为Beta 5的要求。
你可以很容易地在Swift中使用代码做到这一点:
let string = "hello Swift";
let subString = (string as NSString).containsString("Swift")
if(subString){println("Exist")}
SWIFT 4非常简单!!
if (yourString.contains("anyThing")) {
print("Exist")
}
Swift 3:在这里你可以看到我的智能搜索扩展从字符串,让你对字符串进行搜索,看看它是否包含,或者可能过滤一个基于搜索文本的集合。
https://github.com/magonicolas/Swift-Smart-String-Search
在Xcode 7.1和Swift 2.1中,containsString()为我工作得很好。
let string = "hello swift"
if string.containsString("swift") {
print("found swift")
}
斯威夫特4:
let string = "hello swift"
if string.contains("swift") {
print("found swift")
}
一个不区分大小写的Swift 4示例:
let string = "Hello Swift"
if string.lowercased().contains("swift") {
print("found swift")
}
或者使用不区分大小写的字符串扩展名:
extension String {
func containsIgnoreCase(_ string: String) -> Bool {
return self.lowercased().contains(string.lowercased())
}
}
let string = "Hello Swift"
let stringToFind = "SWIFT"
if string.containsIgnoreCase(stringToFind) {
print("found: \(stringToFind)") // found: SWIFT
}
print("string: \(string)")
print("stringToFind: \(stringToFind)")
// console output:
found: SWIFT
string: Hello Swift
stringToFind: SWIFT