在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中做到这一点呢?
当前回答
你可以按照你刚才提到的去做:
import Foundation
...
string.contains("Swift");
从文档中可以看出:
Swift的String类型无缝地桥接到Foundation的NSString 类。如果您正在使用Cocoa中的Foundation框架或 Cocoa Touch,整个NSString API可以调用任何 您所创建的字符串值,以及所描述的字符串特性 在本章中。你也可以在任何API中使用String值 需要一个NSString实例。
你需要导入Foundation来桥接NSString方法,并使它们对Swift的String类可用。
其他回答
检查它是否包含“Hello”
let s = "Hello World"
if s.rangeOfString("Hello") != nil {
print("Yes it contains 'Hello'")
}
在iOS 8和更新版本中,你可以使用这两个NSString方法:
@availability(iOS, introduced=8.0)
func containsString(aString: String) -> Bool
@availability(iOS, introduced=8.0)
func localizedCaseInsensitiveContainsString(aString: String) -> Bool
这是我在快速操场上的第一次尝试。 我通过提供两个新函数(contains和containsIgnoreCase)来扩展String
extension String {
func contains(other: String) -> Bool{
var start = startIndex
do{
var subString = self[Range(start: start++, end: endIndex)]
if subString.hasPrefix(other){
return true
}
}while start != endIndex
return false
}
func containsIgnoreCase(other: String) -> Bool{
var start = startIndex
do{
var subString = self[Range(start: start++, end: endIndex)].lowercaseString
if subString.hasPrefix(other.lowercaseString){
return true
}
}while start != endIndex
return false
}
}
像这样使用它
var sentence = "This is a test sentence"
sentence.contains("this") //returns false
sentence.contains("This") //returns true
sentence.containsIgnoreCase("this") //returns true
"This is another test sentence".contains(" test ") //returns true
我欢迎任何反馈:)
你可以很容易地在Swift中使用代码做到这一点:
let string = "hello Swift";
let subString = (string as NSString).containsString("Swift")
if(subString){println("Exist")}
给你:
let s = "hello Swift"
if let textRange = s.rangeOfString("Swift") {
NSLog("exists")
}