我有一些单词的数组,我想检查这些单词是否存在于我的字符串中。这里是示例代码快速比较NSArray和NSString?
var array: NSArray = ["one", "two", "three", "four"]
var Str: NSString = "one example of my string"
现在在字符串中存在一个,但我无法比较它们。如何让那个比较?
我有一些单词的数组,我想检查这些单词是否存在于我的字符串中。这里是示例代码快速比较NSArray和NSString?
var array: NSArray = ["one", "two", "three", "four"]
var Str: NSString = "one example of my string"
现在在字符串中存在一个,但我无法比较它们。如何让那个比较?
像这样做,
var array: NSArray = ["one", "two", "three", "four"]
var Str: NSString = "one example of my string"
let filteredString = Str.componentsSeparatedByString(" ").filter { a in
return array.containsObject(a)
}
print(filteredString)
感谢您的帮助。它工作完美。 –
可以使用NSString.containsString(string)方法:
let Str : NSString = "This is one string"
let array : [NSString] = ["one", "two", "three", "four"]
for word in array {
print("is \(word) mentioned in string? : \(Str.containsString(word as String))")
}
与输出:
要使用的方法,如果你有一个字符串的不同排列来检查你可以做这样的:
var array: NSArray = ["one", "two", "three", "four"]
var str: NSString = "one example of my string"
func checkIfStringOfArrayExists(arrayOfString: NSArray, inString string: NSString) -> Bool {
for element in array where str.containsString(element as! String) {
return true
}
return false
}
checkIfStringOfArrayExists(array, inString: str) // true
谢谢,我觉得这个选项很简单。因为我现在可以做我的东西。 –
如果简单Bool
结果是你所需要的:
array.contains{ string.containsString(String($0)) } // true
但是,我建议使用Swift的Array
和String
值类型替代,然后按如下方式扩展String
:
public extension String {
public func containsAny(strings: [String]) -> Bool {
return strings.contains{ containsString($0) }
}
}
let strings = ["one", "two", "three", "four"]
let string = "one example of my string"
string.containsAny(strings) // true
检查arraycontains方法。 – sourav