sourcecode

Objective-C에서 문자열이 비어 있는지 테스트하려면 어떻게 해야 합니까?

copyscript 2023. 4. 14. 22:01
반응형

Objective-C에서 문자열이 비어 있는지 테스트하려면 어떻게 해야 합니까?

「」가 다음의 하려면 , 하면 됩니다.NSStringObjective-C 어 objective objective objective objective objective?

하면 '아까보다'가 할 수 있어요.[string length] == 0하지만 빈 인지, 0인지 을 호출하고 있기 입니다.length 0은 00을 합니다.

크의답답 옳옳옳옳옳 기회에 포인터를 isEmpty블로그에서 공유한 내용:

static inline BOOL IsEmpty(id thing) {
return thing == nil
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}

번째 공백이 하지 않습니다.@" "테스트하기 전에 이 빈칸을 지워야 합니다.

이 코드는 문자열 양쪽에 있는 모든 공백을 지웁니다.

[stringObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ];

매크로를 1개 작성하는 것도 좋은 방법입니다.그러면 다음 행을 입력할 필요가 없습니다.

#define allTrim( object ) [object stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet] ]

이제 다음을 사용할 수 있습니다.

NSString *emptyString = @"   ";

if ( [allTrim( emptyString ) length] == 0 ) NSLog(@"Is empty!");

지금까지 본 최고의 솔루션 중 하나(Matt G의 솔루션보다 우수)는 Git Hub repo(Wil Shipley의 솔루션이지만 링크를 찾을 수 없음)에서 가져온 향상된 인라인 기능입니다.

// Check if the "thing" passed is empty
static inline BOOL isEmpty(id thing) {
    return thing == nil
    || [thing isKindOfClass:[NSNull class]]
    || ([thing respondsToSelector:@selector(length)]
        && [(NSData *)thing length] == 0)
    || ([thing respondsToSelector:@selector(count)]
        && [(NSArray *)thing count] == 0);
}

다음 카테고리를 사용하는 것이 좋습니다.

@implementation NSString (Empty)

    - (BOOL) isWhitespace{
        return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
    }

@end

는 '보다 낫다'와 입니다.@""isEqualToString:다음과 같이 합니다.

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

이렇게 써놨어요.

@implementation NSObject (AdditionalMethod)
-(BOOL) isNotEmpty
{
    return !(self == nil
    || [self isKindOfClass:[NSNull class]]
    || ([self respondsToSelector:@selector(length)]
        && [(NSData *)self length] == 0)
    || ([self respondsToSelector:@selector(count)]
        && [(NSArray *)self count] == 0));

};
@end

문제는 self가 0일 경우 이 함수는 호출되지 않는다는 것입니다.그것은 잘못된 것으로 반환될 것이다, 그것은 바람직하다.

다음 메서드에 문자열을 전달합니다.

+(BOOL)isEmpty:(NSString *)str
{
    if(str.length==0 || [str isKindOfClass:[NSNull class]] || [str isEqualToString:@""]||[str  isEqualToString:NULL]||[str isEqualToString:@"(null)"]||str==nil || [str isEqualToString:@"<null>"]){
        return YES;
    }
    return NO;
}

아마도 이 답변은 이미 주어진 답변의 중복일 것입니다만, 저는 조건 확인 순서에 따라 수정과 변경을 거의 하지 않았습니다.다음 코드를 참조하십시오.

+(BOOL)isStringEmpty:(NSString *)str {
     if(str == nil || [str isKindOfClass:[NSNull class]] || str.length==0) {
            return YES;
       }
      return NO;
  }

스위프트 버전

는 'C의 문제 'C의 문제', 'C의 문제', 'C의 문제'를 .NSString재빠르다

let myNSString: NSString = ""

if myNSString.length == 0 {
    print("String is empty.")
}

, 「 」의 경우.NSString입니다.

var myOptionalNSString: NSString? = nil

if myOptionalNSString == nil || myOptionalNSString!.length == 0 {
    print("String is empty.")
}

// or alternatively...
if let myString = myOptionalNSString {
    if myString.length != 0 {
        print("String is not empty.")
    }
}

Swift ★★★★★★★★★★★★★★★★★★★★★」String은 「」입니다.

let myString: String = ""

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

다음 항목도 참조하십시오.Swift에서 빈 문자열을 확인하시겠습니까?

하다, 하다, 하다, 하다, 하다 중 .if else다음과 같이 합니다.

방법 1:

if ([yourString isEqualToString:@""]) {
        // yourString is empty.
    } else {
        // yourString has some text on it.
    }

방법 2:.

if ([yourString length] == 0) {
    // Empty yourString
} else {
    // yourString is not empty
}

간단히 문자열 길이 확인

 if (!yourString.length)
 {
   //your code  
 }

NIL에 대한 메시지는 0 또는 0을 반환하므로 NIL을 테스트할 필요가 없습니다.

해피 코딩...

다음 방법을 사용하여 문자열이 비어 있는지 여부를 확인할 수 있습니다.

+(BOOL) isEmptyString : (NSString *)string
{
    if([string length] == 0 || [string isKindOfClass:[NSNull class]] || 
       [string isEqualToString:@""]||[string  isEqualToString:NULL]  ||
       string == nil)
     {
        return YES;         //IF String Is An Empty String
     }
    return NO;
}

베스트 프랙티스는 공유 클래스를 Utility Class라고 하고, 이 메서드를 어플리케이션에서 호출하는 것만으로 이 메서드를 사용할 수 있도록 하는 것입니다.

문자열이 비어 있는지 여부를 확인하려면 다음 2가지 방법이 있습니다.

을 예예 is들라고 가정해봅시다.NSString *strIsEmpty.

방법 1:

if(strIsEmpty.length==0)
{
    //String is empty
}

else
{
    //String is not empty
}

방법 2:.

if([strIsEmpty isEqualToString:@""])
{
    //String is empty
}

else
{
    //String is not empty
}

위의 메서드 중 하나를 선택하여 문자열이 비어 있는지 확인합니다.

그것은 나에게 매력으로 작용하고 있다.

경우,NSStrings

if ([s isKindOfClass:[NSNull class]] || s == nil || [s isEqualToString:@""]) {

    NSLog(@"s is empty");

} else {

    NSLog(@"s containing %@", s);

}

따라서 문자열 길이가 1보다 작은지 확인하는 기본 개념과는 별도로 컨텍스트를 깊이 고려하는 것이 중요합니다.언어가 인간인지 컴퓨터인지에 따라 빈 문자열에 대한 정의가 다를 수 있으며 동일한 언어 내에서 추가 컨텍스트가 의미를 더욱 변경할 수 있습니다.

빈 문자열은 "현재 컨텍스트에서 중요한 문자가 포함되지 않은 문자열"을 의미합니다.

이는 색상 및 배경색이 속성 문자열에서 동일하다는 것을 의미할 수 있습니다.사실상 비어 있다.

의미 있는 문자가 비어 있을 수 있습니다.모든 점, 모든 대시 또는 모든 밑줄은 비어 있는 것으로 간주될 수 있습니다.또한 의미 있는 중요한 문자가 비어 있으면 독자가 이해할 수 있는 문자가 없는 문자열을 의미할 수 있습니다.언어 내의 문자 또는 독자에게 무의미하다고 정의된 문자 집합일 수 있습니다.문자열이 특정 언어에서 알려진 단어를 형성하지 않는다고 하는 것은 조금 다르게 정의할 수 있습니다.

빈칸은 문자의 음의 공간 비율의 함수라고 할 수 있습니다.

일반적인 시각적 표현이 없는 일련의 인쇄 불가능한 문자도 실제로는 비어 있지 않습니다.컨트롤 캐릭터가 떠오릅니다.특히 ASCII 범위가 낮습니다(대부분의 시스템에 접속되어 있어 공백이 아니기 때문에, 문자나 시각 지표가 없기 때문에, 아무도 그러한 것에 대해 언급하지 않는 것이 놀랍습니다).그러나 문자열 길이는 0이 아닙니다.

결론.길이만 측정하는 것은 아닙니다.콘텍스트 세트 멤버쉽도 매우 중요합니다.

문자 집합 구성원은 매우 중요한 공통 추가 척도입니다.의미 있는 시퀀스도 꽤 흔한 것입니다.( think SETI 、 crypto or captchas )더 추상적인 컨텍스트세트도 있어요

따라서 문자열이 길이 또는 공백만을 기준으로 비어 있다고 가정하기 전에 신중하게 생각해 보십시오.

NSDictionary 지원 추가 및 작은 변경 사항 추가에 매우 유용한 게시물

static inline BOOL isEmpty(id thing) {
    return thing == nil
    || [thing isKindOfClass:[NSNull class]]
    || ([thing respondsToSelector:@selector(length)]
        && ![thing respondsToSelector:@selector(count)]
        && [(NSData *)thing length] == 0)
    || ([thing respondsToSelector:@selector(count)]
        && [thing count] == 0);
}
- (BOOL)isEmpty:(NSString *)string{
    if ((NSNull *) string == [NSNull null]) {
        return YES;
    }
    if (string == nil) {
        return YES;
    }
    if ([string length] == 0) {
        return YES;
    }
    if ([[string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]] length] == 0) {
        return YES;
    }
    if([[string stringByStrippingWhitespace] isEqualToString:@""]){
        return YES;
    }
    return NO;
}

가장 좋은 방법은 카테고리를 사용하는 것입니다.
다음과 같은 기능을 확인할 수 있습니다.확인할 수 있는 모든 조건을 갖추고 있습니다.

-(BOOL)isNullString:(NSString *)aStr{
        if([(NSNull *)aStr isKindOfClass:[NSNull class]]){
            return YES;
        }
        if ((NSNull *)aStr  == [NSNull null]) {
            return YES;
        }
        if ([aStr isKindOfClass:[NSNull class]]){
            return YES;
        }
        if(![[aStr stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length]){
            return YES;
        }
        return NO;
    }

어떤 경우에도 지정된 문자열의 길이를 확인하는 것이 가장 좋습니다.이 경우 문자열이 myString일 경우 코드는 다음과 같습니다.

    int len = [myString length];
    if(len == 0){
       NSLog(@"String is empty");
    }
    else{
      NSLog(@"String is : %@", myString);
    }
if (string.length == 0) stringIsEmpty;

이것을 체크합니다.

if ([yourString isEqualToString:@""])
{
    NsLog(@"Blank String");
}

또는

if ([yourString length] == 0)
{
    NsLog(@"Blank String");
}

이게 도움이 되길 바라.

다음과 같이 하면 문자열이 비어 있는지 쉽게 확인할 수 있습니다.

if ([yourstring isEqualToString:@""]) {
    // execute your action here if string is empty
}

아래 코드를 사용하여 빈 문자열을 확인했습니다.

//Check if we have any search terms in the search dictionary.
if( (strMyString.text==(id) [NSNull null] || [strMyString.text length]==0 
       || strMyString.text isEqual:@"")) {

   [AlertView showAlert:@"Please enter a valid string"];  
}

매우 간단합니다.if([myString isEqual:@""])또는if([myString isEqualToString:@""])

//Different validations:
 NSString * inputStr = @"Hey ";

//Check length
[inputStr length]

//Coming from server, check if its NSNull
[inputStr isEqual:[NSNull null]] ? nil : inputStr

//For validation in allowed character set
-(BOOL)validateString:(NSString*)inputStr
{
    BOOL isValid = NO;
    if(!([inputStr length]>0))
    {
        return isValid;

    }

    NSMutableCharacterSet *allowedSet = [NSMutableCharacterSet characterSetWithCharactersInString:@".-"];
    [allowedSet formUnionWithCharacterSet:[NSCharacterSet decimalDigitCharacterSet]];
    if ([inputStr rangeOfCharacterFromSet:[allowedSet invertedSet]].location == NSNotFound)
    {
        // contains only decimal set and '-' and '.'

    }
    else
    {
        // invalid
        isValid = NO;

    }
    return isValid;
}

빈 문자열은 다음 두 가지 방법으로 사용할 수 있습니다.

1) @" // 공백 없음

2) @" // 공간 포함

엄밀히 말하면 두 문자열 모두 비어 있습니다.하나의 조건만으로 둘 다 쓸 수 있다.

if ([firstNameTF.text stringByReplacingOccurrencesOfString:@" " withString:@""].length==0)
{
    NSLog(@"Empty String");
}
else
{
    NSLog(@"String contains some value");
}

다음을 시도합니다.

NSString *stringToCheck = @"";

if ([stringToCheck isEqualToString:@""])
{
   NSLog(@"String Empty");
}
else
{
   NSLog(@"String Not Empty");
}

여러 답변을 바탕으로 @iDevAmit와 @user238824의 답변을 조합하여 사용할 수 있는 카테고리를 만들었습니다.

구체적으로는 다음과 같은 순서로 진행됩니다.

  1. null/nil을 확인합니다.
  2. 문자열의 길이 수를 사용하여 문자열이 비어 있는지 확인합니다.
  3. 문자열이 공백인지 확인합니다.

헤더

//
//  NSString+Empty.h

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSString (Empty)
- (BOOL)isEmptyOrWhiteSpacesOrNil;
@end

NS_ASSUME_NONNULL_END

실행

//
//  NSString+Empty.m

#import "NSString+Empty.h"

@implementation NSString (Empty)

- (BOOL) isWhitespace{
      return ([[self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]length] == 0);
  }

- (BOOL)isEmptyOrWhiteSpacesOrNil {
     if(self == nil || [self isKindOfClass:[NSNull class]] || self.length==0 || [self isWhitespace] == YES) {
            return YES;
       }
      return NO;
  }

@end

/*
 Credits
 1. https://stackoverflow.com/a/24506942/7551807
 2. https://stackoverflow.com/a/1963273/7551807
 */

용도: 물론 문자열이 null일 경우 함수는 트리거되지 않습니다.첫 번째 케이스는 보안을 강화하기 위해 그곳에 있습니다.이 방법을 사용하기 전에 무효 여부를 확인하는 것이 좋습니다.

if (myString) {
  if [myString isEmptyOrWhiteSpacesOrNil] {
     // String is empty
  }
} else {
// String is null
}
if(str.length == 0 || [str isKindOfClass: [NSNull class]]){
    NSLog(@"String is empty");
}
else{
    NSLog(@"String is not empty");
}    

언급URL : https://stackoverflow.com/questions/899209/how-do-i-test-if-a-string-is-empty-in-objective-c

반응형