2016-03-28 123 views
0

我有一些單詞的數組,我想檢查這些單詞是否存在於我的字符串中。這裏是示例代碼快速比較NSArray和NSString?

var array: NSArray = ["one", "two", "three", "four"] 

var Str: NSString = "one example of my string" 

現在在字符串中存在一個,但我無法比較它們。如何讓那個比較?

+0

檢查arraycontains方法。 – sourav

回答

1

像這樣做,

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) 
+0

感謝您的幫助。它工作完美。 –

0

可以使用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))") 
} 

與輸出:

  • 是一個字符串提到? :true
  • 是兩個字符串中提到的嗎? :false
  • 是三個字符串中提到的嗎? :false
  • 是四個字符串中提到的嗎? :假
0

要使用的方法,如果你有一個字符串的不同排列來檢查你可以做這樣的:

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 
+0

謝謝,我覺得這個選項很簡單。因爲我現在可以做我的東西。 –

0

如果簡單Bool結果是你所需要的:

array.contains{ string.containsString(String($0)) } // true 

但是,我建議使用Swift的ArrayString值類型替代,然後按如下方式擴展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