在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中做到这一点呢?
当前回答
这只是对答案的补充。
你也可以使用以下方法进行本地不区分大小写的测试:
- (BOOL)localizedCaseInsensitiveContainsString:(NSString *)aString
例子:
import Foundation
var string: NSString = "hello Swift"
if string.localizedCaseInsensitiveContainsString("Hello") {
println("TRUE")
}
更新
这是iOS和Mac OS X 10.10.x基础框架的一部分 在我最初发布的时候,它是10.10的一部分。
文档生成日期:2014-06-05 12:26:27 -0700 OS X版本说明 版权所有©2014苹果公司版权所有。 OS X 10.10发布说明Cocoa基础框架 NSString现在有以下两个方便的方法: - (BOOL)containsString:(NSString *)str; - (BOOL)localizedCaseInsensitiveContainsString:(NSString *)str;
其他回答
字符串。containsString只在10.10 Yosemite(可能还有iOS8)中可用。 而且在10.9中将它连接到objecvec也会崩溃。你试图传递一个NSString到NSCFString。我不知道区别,但我可以说10.9在OS X 10.9应用程序中执行这段代码时呕吐。
以下是Swift与10.9和10.10的不同之处: https://developer.apple.com/library/prerelease/mac/documentation/General/Reference/APIDiffsMacOSX10_10SeedDiff/index.html containsString仅在10.10中可用
上面的String范围在10.9上工作得很好。我发现在10.9上开发Xcode beta2非常稳定。我不使用游乐场的命令行版本。我发现如果导入了合适的框架,自动补全功能是非常有用的。
在Swift 3中
if((a.range(of: b!, options: String.CompareOptions.caseInsensitive, range: nil, locale: nil)) != nil){
print("Done")
}
Swift 4方法检查子字符串,包括必要的基础(或UIKit)框架导入:
import Foundation // or UIKit
let str = "Oh Canada!"
str.contains("Can") // returns true
str.contains("can") // returns false
str.lowercased().contains("can") // case-insensitive, returns true
除非Foundation(或UIKit)框架被导入,str.contains("Can")将给出一个编译器错误。
这个答案是在重复manojlds的答案,而manojlds的答案是完全正确的。我不知道为什么这么多答案要经历这么多麻烦来重建Foundation's String。contains(subString:字符串)方法。
// Search string exist in employee name finding.
var empName:NSString! = employeeDetails[filterKeyString] as NSString
Case sensitve search.
let rangeOfSearchString:NSRange! = empName.rangeOfString(searchString, options: NSStringCompareOptions.CaseInsensitiveSearch)
// Not found.
if rangeOfSearchString.location != Foundation.NSNotFound
{
// search string not found in employee name.
}
// Found
else
{
// search string found in employee name.
}
有了swift 4的新语法,你就可以
字符串。包含(“Swift 4是最好的”)
String是你的字符串变量