Swift:String包含String(不使用NSString)?

时间:2014-09-21 09:05:30

标签: string swift

我遇到的问题与此问题相同:

How do I check if a string contains another string in Swift?

但现在几个月后我想知道是否可以在不使用NSString的情况下完成? 我很好,简单包含方法会很好。 我搜索了网络和文档,但我一无所获!

4 个答案:

答案 0 :(得分:28)

同样,只需使用Swift语法:

let string = "This is a test.  This is only a test"

if string.rangeOfString("only") != nil {
     println("yes")
}

对于Swift 3.0

if str.range(of: "abc") != nil{
     print("Got the string")
}

答案 1 :(得分:3)

String实际上通过StringProtocol提供了“包含”功能 无需任何延期:

let str = "asdf"
print(str.contains("sd") ? "yep" : "nope")

enter image description here

<击> https://developer.apple.com/reference/swift/string https://developer.apple.com/documentation/swift/stringprotocol

如果你想检查你的字符串是否与特定模式匹配,我可以推荐有关NSRegularExpressions的NSHipster文章:http://nshipster.com/nsregularexpression/

答案 2 :(得分:0)

我在SWIFT 3.0的String上写了一个扩展,这样我就可以简单地调用absoluteString.contains(string: "/kredit/")

extension String {
  public func contains(string: String)-> Bool {
      return self.rangeOfString(string) != nil
  }

}

答案 3 :(得分:0)

只是为了演示选项的使用。

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="16dp"
    android:src="@drawable/ic_calendar_icon"
    app:backgroundTint="@color/primary"
    app:elevation="2dp"
    app:fabSize="normal"
    android:layout_gravity="end|bottom"
    app:layout_dodgeInsetEdges="right|bottom|top|left"
    app:layout_insetEdge="bottom"
    app:pressedTranslationZ="12dp" />