我有一些單詞的數組,我想檢查這些單詞是否存在於我的字符串中。這裏是示例代碼快速比較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