programing

NSString에서 모든 공백 제거

mailnote 2023. 4. 26. 23:33
반응형

NSString에서 모든 공백 제거

하얀 공간을 없애려고 노력해 왔습니다.NSString하지만 제가 시도한 방법들 중 어느 것도 효과가 없었습니다.

있습니다"this is a test"그리고 나는 받고 싶습니다."thisisatest".

사용한 적이 있습니다.whitespaceCharacterSet흰 공간을 없애야 할 것 같습니다.

NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];

공백이 있는 같은 끈을 계속 얻었어요아이디어 있어요?

stringByTrimmingCharactersInSet문자열의 시작과 끝 부분의 문자만 제거하고 중간에 있는 문자는 제거하지 않습니다.

문자열에서 지정된 문자(예: 공백 문자)만 제거해야 하는 경우 다음을 사용합니다.

[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]

문자 집합(즉, 공백 문자뿐만 아니라 공백, 탭, 깨지지 않는 공백 등)을 제거해야 하는 경우 다음을 사용하여 문자열을 분할할 수 있습니다.whitespaceCharacterSet그런 다음 단어를 하나의 문자열로 다시 결합합니다.

NSArray* words = [yourString componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString* nospacestring = [words componentsJoinedByString:@""];

이 마지막 솔루션은 공백뿐만 아니라 모든 공백 문자를 처리할 수 있는 장점이 있지만, 다음과 같이 효율성이 약간 떨어집니다.stringByReplacingOccurrencesOfString:withString:따라서 공백 문자를 제거하기만 하면 되고 일반 공백 문자 이외의 다른 공백 문자를 사용하지 않을 경우 첫 번째 방법을 사용합니다.

나는 정규식을 다음과 같이 사용하는 것을 선호합니다.

NSString *myString = @"this is a test";
NSString *myNewString = [myString stringByReplacingOccurrencesOfString:@"\\s"
                                     withString:@""
                                        options:NSRegularExpressionSearch
                                          range:NSMakeRange(0, [myStringlength])];
 //myNewString will be @"thisisatest"

NSString의 카테고리로 설정하여 생활을 더욱 편리하게 할 수 있습니다.

- (NSString *) removeAllWhitespace
{
    return [self stringByReplacingOccurrencesOfString:@"\\s" withString:@""
                                              options:NSRegularExpressionSearch
                                                range:NSMakeRange(0, [self length])];

}

다음은 유닛 테스트 방법입니다.

- (void) testRemoveAllWhitespace
{
    NSString *testResult = nil;

    NSArray *testStringsArray        = @[@""
                                         ,@"    "
                                         ,@"  basicTest    "
                                         ,@"  another Test \n"
                                         ,@"a b c d e f g"
                                         ,@"\n\tA\t\t \t \nB    \f  C \t  ,d,\ve   F\r\r\r"
                                         ,@"  landscape, portrait,     ,,,up_side-down   ;asdf;  lkjfasdf0qi4jr0213 ua;;;;af!@@##$$ %^^ & *  * ()+  +   "
                                         ];

    NSArray *expectedResultsArray   = @[@""
                                        ,@""
                                        ,@"basicTest"
                                        ,@"anotherTest"
                                        ,@"abcdefg"
                                        ,@"ABC,d,eF"
                                        ,@"landscape,portrait,,,,up_side-down;asdf;lkjfasdf0qi4jr0213ua;;;;af!@@##$$%^^&**()++"
                                        ];

    for (int i=0; i < [testStringsArray count]; i++)
    {
        testResult = [testStringsArray[i] removeAllWhitespace];
        STAssertTrue([testResult isEqualToString:expectedResultsArray[i]], @"Expected: \"%@\" to become: \"%@\", but result was \"%@\"",
                     testStringsArray[i], expectedResultsArray[i], testResult);
    }
}

사용하기 쉬운 작업stringByReplacingOccurrencesOfString

NSString *search = [searchbar.text stringByReplacingOccurrencesOfString:@" " withString:@""];

이것은 당신이 경험하고 있는 경우에 도움이 될 수 있습니다.\u00a0대신에(공백).장치 연락처 전화 번호를 추출할 때 이 문제가 발생했습니다.phoneNumber 문자열에 공백이 없도록 수정해야 했습니다.

NSString* yourString = [yourString stringByReplacingOccurrencesOfString:@"\u00a0" withString:@""];

언제yourString현재 전화 번호입니다.

stringByReplacingOccurencesOfString은 시작과 끝뿐만 아니라 문자열 내의 모든 공백을 바꿉니다.

사용하다

[YourString stringByTrimmingCharactersInSet:[NSCharacterSet  whitespaceAndNewlineCharacterSet]]
- (NSString *)removeWhitespaces {
  return [[self componentsSeparatedByCharactersInSet:
                    [NSCharacterSet whitespaceCharacterSet]]
      componentsJoinedByString:@""];
}

이것이 저에게 가장 좋은 SWIFT 방법입니다.

        let myString = "  ciao   \n              ciao     "
        var finalString = myString as NSString

        for character in myString{
        if character == " "{

            finalString = finalString.stringByReplacingOccurrencesOfString(" ", withString: "")

        }else{
            finalString = finalString.stringByReplacingOccurrencesOfString("\n", withString: "")

        }

    }
     println(finalString)

그리고 결과는: ciaociao입니다.

하지만 비결은 이것입니다!

 extension String {

    var NoWhiteSpace : String {

    var miaStringa = self as NSString

    if miaStringa.containsString(" "){

      miaStringa =  miaStringa.stringByReplacingOccurrencesOfString(" ", withString: "")
    }
        return miaStringa as String

    }
}

let myString = "Ciao   Ciao       Ciao".NoWhiteSpace  //CiaoCiaoCiao

이것은 텍스트 필드에서 텍스트를 가져올 때 사용할 수 있지만 문자열 사이의 공백을 제거하려면 공백을 제거하기 위한 것입니다.

xyz =[xyz.text stringByReplacingOccurrencesOfString:@" " withString:@""];

빈 공간을 공백 없이 대체하며 빈 필드는 다음 방법으로 처리됩니다.

searchbar.text=[searchbar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

아래 marco를 사용하여 공백을 제거합니다.

#define TRIMWHITESPACE(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]

다른 파일에서 TRIM을 호출합니다.

    NSString *strEmail;
    strEmail = TRIM(@"     this is the test.");

당신에게 도움이 되길...

이를 프로젝트 어딘가에 배치할 것을 강력히 제안합니다.

extension String {
    func trim() -> String {
        return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    }

    func trim(withSet: NSCharacterSet) -> String {
        return self.stringByTrimmingCharactersInSet(withSet)
    }
}
pStrTemp = [pStrTemp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

언급URL : https://stackoverflow.com/questions/7628470/remove-all-whitespaces-from-nsstring

반응형