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

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

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


当前回答

有了swift 4的新语法,你就可以

字符串。包含(“Swift 4是最好的”)

String是你的字符串变量

其他回答

有了swift 4的新语法,你就可以

字符串。包含(“Swift 4是最好的”)

String是你的字符串变量

>在swift 3.0

let str = "Hello Swift"
if str.lowercased().contains("Swift".lowercased()) {
    print("String Contains Another String")
} else {
    print("Not Exists")
}

输出

String Contains Another String

你可以按照你刚才提到的去做:

import Foundation
...
string.contains("Swift");

从文档中可以看出:

Swift的String类型无缝地桥接到Foundation的NSString 类。如果您正在使用Cocoa中的Foundation框架或 Cocoa Touch,整个NSString API可以调用任何 您所创建的字符串值,以及所描述的字符串特性 在本章中。你也可以在任何API中使用String值 需要一个NSString实例。

你需要导入Foundation来桥接NSString方法,并使它们对Swift的String类可用。

Xcode 8/Swift 3版本:

let string = "hello Swift"

if let range = string.range(of: "Swift") {
    print("exists at range \(range)")
} else {
    print("does not exist")
}

if let lowercaseRange = string.lowercased().range(of: "swift") {
    print("exists at range \(lowercaseRange)")
} else {
    print("does not exist")
}

你也可以使用contains:

string.contains("swift") // false
string.contains("Swift") // true

给你:

let s = "hello Swift"
if let textRange = s.rangeOfString("Swift") {
    NSLog("exists")
}