我似乎无法在 Swift 4 中找到 String 的 API。下面是 Objective-C 等效项。
NSString *s = @"abcdefg";
NSString *ss = @"cde";
// just check if s contains ss
NSLog(@"%d", [s containsString:ss]);
// get range of ss in s
NSLog(@"%@", NSStringFromRange([s rangeOfString:ss]));
我错过了什么?
编辑:
我收到此错误消息:
test.swift:1:19: error: cannot convert value of type 'String' to expected argument type 'String.Element' (aka 'Character')
"abcdef".contains("cde")
所以我没有意识到我缺少“import Foundation”...
最佳答案
String
会有一个
func contains<T>(_ other: T) -> Bool where T : StringProtocol
这将在您导入 Foundation
后可用,因为它映射到 NSString
的
open func contains(_ str: String) -> Bool
事实上,导入 Foundation
扩展了 Swift 的 String
,其中包含您可以在其中找到的所有 NSString
功能 documentation here .
原因:Swift 的 String
没有像 NSString
那样进化,因此它是 bridged至少现在。
无论如何...
检查子字符串的 Swift 4 解决方案是:
let string = "Hello, World"
let hasSubstring = string.contains("ello")
关于swift - 如何在 Swift 4 中搜索字符串中的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49784095/