2016-03-28 110 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