2011-01-10 4 views
64

두 개의 문자열이 있습니다. 일부는 처음에는 공백이 있고 그렇지 않은 것도 있습니다. 문자열이 공백 문자로 시작하는지 확인하고 싶으면 제거하십시오.Objective-C의 문자열에서 공백을 제거하십시오.

+0

조금만 탐색해도 해가되지는 않습니다. Cocoa Touch의 문자열에서 공백을 제거하는 가장 좋은 방법은 무엇입니까? (http://stackoverflow.com/questions/474270/whats-the-best-way-to-trim-whitespace-from-a) -string-in-cocoa-touch) – Abizern

답변

192

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

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

이렇게하면 후행 공백을 없애 버릴 수도 있습니다. (원래의 질문은 처음부터 그냥 지우도록합니다.) – lnafziger

+0

'stringByTrimmingCharactersInSet'은 처음부터 문자를 제거하고 중간에있는 문자열이 아닌 문자열의 끝 문자열의 중간에있는 공간을 제거하려는 사람들은'[yourString stringByReplacingOccurrencesOfString : @ ""withString : @ ""]'을 사용하십시오. –

65

당신은 같은 whitespaceAndNewlineCharacterSet NSCharacterSet으로 stringByTrimmingCharactersInSet NSString 방법을 사용할 수 있습니다

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

+1 추천 whitespaceCharacterSet이 아닌 whitespaceCharacterSet –

+1

-1 (줄 바꿈을 포함하지 않도록 공백을 재정의 한 경우) (새 inlineWhitespaceCharacterSet을 작성해야 함) – AlexChaffee

+0

또한 후행 공백을 제거하십시오 (바람직하지 않을 수도 있음). (원래의 질문은 처음부터 그것을 지우라고 요청합니다.) – lnafziger

6

이는 선두 공백을 제거합니다.

mystring 123 , length 9 
mystring 123 , length 6 
+0

선행 공백을 제거하는 가장 좋은 솔루션입니다. – jcpennypincher

5

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); 

출력은 내가 작성하는 데 필요한 코드의 양을 줄이기 위해 빠른 매크로를 썼다.

1 단계 : 앱의 PCH 파일을 편집, 이것은 프로젝트 - 이름 - Prefix.pch을 지정해야합니다

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

2 단계 : 문자열

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

Output: Hello World 
을 다듬을 때 방법은 적은 코드를 작성 즐길 수 있습니다
관련 문제