String 检查多量程串(Swift)

String 检查多量程串(Swift),string,if-statement,swift,String,If Statement,Swift,如何执行多个rangeOfString,但仅当所检查的值具有值时才执行 例如下面 var string1 = "hello" var string2 = "world" var checker1 = "he" var checker2 = "" if string1.lowercaseString.rangeOfString(checker1) != nil { println("exists1") } //不应执行以下操作,因为以下值为“checker2”为空 if string

如何执行多个rangeOfString,但仅当所检查的值具有值时才执行

例如下面

var string1 = "hello"
var string2 = "world"

var checker1 = "he"
var checker2 = ""

if string1.lowercaseString.rangeOfString(checker1) != nil {
    println("exists1")
}
//不应执行以下操作,因为以下值为“checker2”为空

if string2.lowercaseString.rangeOfString(checker2) != nil {
    println("exists2")
}

如果字符串为非空,则只需添加一个检查:

if checker2 != "" && string2.lowercaseString.rangeOfString(checker2) != nil {
    println("exists2")
}
但这实际上是不必要的,因为
rangeOfsString()
在调用时返回
nil
用一个空的论点。如果你把测试改写成

if string2.rangeOfString(checker2, options: .CaseInsensitiveSearch) != nil {
    println("exists2")
}
这样,即使在空模式中进行
小写
转换也没有开销
字符串大小写。

通过“hasavalue”,您是指非空字符串吗?是的。字符串将是用户输入到UITextField的值,因此如果他们将其留空,我希望它不执行if语句。如果两个字符串都有值,我希望它同时执行这两个操作。据我所知,这完全符合您的要求。复制和粘贴,仅打印“exists1”,而不打印“exists2”。如果我们为
checker2
输入一个“w”,它将同时打印这两个内容。:正式文档:
如果未找到aString或aString为空(@“”),则返回{NSNotFound,0}。
+1