检查Swift中的空string?

在Objective C中,可以执行以下操作来检查string:

if ([myString isEqualToString:@""]) { NSLog(@"myString IS empty!"); } else { NSLog(@"myString IS NOT empty, it is: %@", myString); } 

如何检测Swift中的空string?

现在有内置的能力来检测空string.isEmpty

 if emptyString.isEmpty { print("Nothing to see here") } 

苹果预发布文档: “string和字符” 。

检查string是否为空的简明方法是:

 var myString: String? = nil if (myString ?? "").isEmpty { print("String is nil or empty") } 

我正在完全重写我的答案( 再次 )。 这一次是因为我已经成为guard声明和早日归来的粉丝。 它使得代码更简洁。

非可选string

检查零长度。

 let myString: String = "" if myString.isEmpty { print("String is empty.") return // or break, continue, throw } // myString is not empty (if this point is reached) print(myString) 

如果if语句通过,那么你可以安全地使用string知道它不是空的。 如果它是空的,那么该函数将返回提前,没有什么事情之后。

可选string

检查无或零长度。

 let myOptionalString: String? = nil guard let myString = myOptionalString, !myString.isEmpty else { print("String is nil or empty.") return // or break, continue, throw } // myString is neither nil nor empty (if this point is reached) print(myString) 

这解开了可选项,同时检查它不是空的。 在通过guard声明之后,您可以安全地使用解包的非空string。

这是我如何检查string是空白的。 “空白”是指一个空的string,或者只包含空格/换行符。

 struct MyString { static func blank(text: String) -> Bool { let trimmed = text.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) return trimmed.isEmpty } } 

如何使用:

 MyString.blank(" ") // true 

要同时做零检查和长度Swift 2.0和iOS 9以上,你可以使用

 if(yourString?.characters.count > 0){} 

在迅速4.0

使用

 var isEmpty: Bool { get } 

 let lang = "Swift 4" if horseName.isEmpty { print("Empty string") } 

isEmpty将按照您的想法执行,如果string ==“”,它将返回true。 一些其他的答案指出,你有一个可选的string的情况。

请使用可选链接 !

如果string不是零,则会使用isEmpty,否则不会。

下面,optionalString不会被设置,因为string是零

 let optionalString: String? = nil if optionalString?.isEmpty == true { optionalString = "Lorem ipsum dolor sit amet" } 

显然你不会使用上面的代码。 收益来自JSONparsing或其他您有价值的情况。 这保证代码将会运行,如果有一个值。

你也可以使用一个可选的扩展,所以你不必担心解包或使用== true

 extension String { var isBlank: Bool { return self.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty } } extension Optional where Wrapped == String { var isBlank: Bool { if let unwrapped = self { return unwrapped.isBlank } else { return true } } } 

注意:在可选的时候调用这个,确保不要使用? 否则它仍然需要解包。

检查文本中只有空格和换行符

 extension String { var isBlank:Bool { return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).isEmpty } } 

运用

 if text.isBlank { //text is blank do smth } 

对于可选的string怎么样:

 if let string = string where !string.isEmpty { print(string) } 

关于什么

 if let notEmptyString = optionalString where !notEmptyString.isEmpty { // do something with emptyString NSLog("Non-empty string is %@", notEmptyString) } else { // empty or nil string NSLog("Empty or nil string") }