[swift] Swift에서 빈 문자열을 확인 하시겠습니까?

목표 C에서 문자열을 확인하기 위해 다음을 수행 할 수 있습니다.

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

Swift에서 빈 문자열을 어떻게 감지합니까?



답변

이제 빈 문자열을 감지하는 내장 기능이 있습니다 .isEmpty.

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

Apple 시험판 문서 : “문자열 및 문자” .


답변

문자열이 nil인지 비어 있는지 확인하는 간결한 방법은 다음과 같습니다.

var myString: String? = nil

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


답변

나는 내 답변을 완전히 다시 작성하고 있습니다 ( 다시 ). 이번에는 guard성명서 의 팬이 되었고 일찍 돌아 왔기 때문 입니다. 훨씬 깨끗한 코드를 만듭니다.

비 선택적 문자열

길이가 0인지 확인하십시오.

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 문을 통과, 당신은 안전하게이 비어 있지 않은 것을 알고 문자열을 사용할 수 있습니다. 비어 있으면 함수가 일찍 반환되고 중요한 후에 아무것도 반환되지 않습니다.

선택적 문자열

길이가 없거나 0인지 확인하십시오.

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명령문을 전달한 후 랩핑되지 않은 비어 있지 않은 문자열을 안전하게 사용할 수 있습니다.


답변

Xcode 11.3 swift 5.2 이상

사용하다

var isEmpty: Bool { get } 

let lang = "Swift 5"

if lang.isEmpty {
   print("Empty string")
}

공백무시 하려면

if lang.trimmingCharacters(in: .whitespaces).isEmpty {
   print("Empty string")
}


답변

문자열이 비어 있는지 확인하는 방법은 다음과 같습니다. ‘공백’은 비어 있거나 공백 / 줄 바꾸기 문자 만 포함하는 문자열을 의미합니다.

struct MyString {
  static func blank(text: String) -> Bool {
    let trimmed = text.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    return trimmed.isEmpty
  }
}

사용하는 방법:

MyString.blank(" ") // true


답변

선택적 확장을 사용하여 언 래핑 또는 사용에 대해 걱정할 필요가 없습니다 == 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
        }
    }
}

참고 : 옵션으로 이것을 호출 할 때 사용하지 마십시오. ?그렇지 않으면 래핑 해제가 필요합니다.


답변

부정 검사 및 길이를 동시에 수행하려면 Swift 2.0 및 iOS 9부터 사용할 수 있습니다.

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