2014-08-27 68 views
2

贝塔5之前,我可以使用斯威夫特字符串在字符串

var str = "Hello, playground" 
str.bridgeToObjectiveC().containsString("Hello") 

但是这不再支持,是有一个很好的办法解决这个,还是雨燕现在已经提供了吗?

+1

可能重复http://stackoverflow.com/questions/24034043/how-do -i-check-if-a-string-contains-another-string-in-swift) – ThomasW 2014-08-27 09:19:14

回答

1

在斯威夫特叫rangeOfString

"hello".rangeOfString("ell") 

返回一

{有些 “1 .. < 4”}

1

你可以使用:

var str = "Hello, playground" 

if str.rangeOfString("Hello") != nil { 
    println("exists") 
} 
1

就明确地将它转换到NSString

var str = "Hello, playground" 
(str as NSString).containsString("Hello") 

但是如果有一种纯粹的快捷方式做到这一点,我会用它 - 它总是更好地避免桥接,除非真的需要。

1

你可以写扩展contains:

extension String { 

    func contains(find: String) -> Bool{ 
     if let temp = self.rangeOfString(find){ 
      return true 
     } 
     return false 
    } 
} 

例子:

var value = "Hello world" 

println(value.contains("Hello")) // true 
println(value.contains("bo")) // false 
的[?如何检查是否字符串包含在斯威夫特另一个字符串(
+0

感谢示例2是我认为的最佳方式:)! – 2014-08-27 09:41:19