[objective-c] Objective-C의 문자열에서 공백 제거

나는 몇 개의 문자열이 있습니다. 일부는 처음에 공백이 있고 일부는 공백이 없습니다. 문자열이 공백으로 시작하는지 확인하고 그렇다면 제거하고 싶습니다.



답변

NSString 클래스에는 그 방법이 있습니다. 확인하십시오 stringByTrimmingCharactersInSet:(NSCharacterSet *)set. [NSCharacterSet whitespaceCharacterSet]매개 변수로 사용해야합니다 .

NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];


답변

다음 과 같이 whitespaceAndNewlineCharacterSet NSCharacterSet 과 함께 stringByTrimmingCharactersInSet NSString 메서드를 사용할 수 있습니다 .

NSString *testString = @"  Eek! There are leading and trailing spaces  ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
                             [NSCharacterSet whitespaceAndNewlineCharacterSet]];


답변

작성해야하는 코드의 양을 줄이기 위해 빠른 매크로를 작성했습니다.

1 단계 : 앱의 PCH 파일을 편집합니다. 이름은 Project-Name-Prefix.pch 여야합니다.

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

2 단계 : 문자열을 다듬고 싶을 때 코드를 적게 작성하세요.

NSLog(@"Output: %@ %@", TRIM(@"Hello        "), TRIM(@"World      "));

Output: Hello World


답변

이렇게하면 선행 공백 만 제거됩니다.

NSString *myString = @"   123   ";
NSLog(@"mystring %@, length %d",myString, myString.length);
NSRange range = [myString rangeOfString:@"^\\s*" options:NSRegularExpressionSearch];
myString = [myString stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"mystring %@, length %d",myString, myString.length);

산출

mystring    123   , length 9
mystring 123   , length 6


답변