나는 몇 개의 문자열이 있습니다. 일부는 처음에 공백이 있고 일부는 공백이 없습니다. 문자열이 공백으로 시작하는지 확인하고 그렇다면 제거하고 싶습니다.
답변:
NSString 클래스에는 그 방법이 있습니다. 확인하십시오 stringByTrimmingCharactersInSet:(NSCharacterSet *)set
. [NSCharacterSet whitespaceCharacterSet]
매개 변수로 사용해야합니다 .
NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
stringByTrimmingCharactersInSet
문자열의 시작과 끝에서만 문자를 제거하고 중간에있는 문자는 제거하지 않습니다. 문자열 중간의 공백을 제거하려는 경우 [yourString stringByReplacingOccurrencesOfString:@" " withString:@""]
.
다음 과 같이 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