2010년 8월 23일 월요일

[Objective-C] NSString - Step 2





//공백과 탭 제거
NSString *stringBefore = @"                 I Wanna be a iPHone developer !! ";
NSString *stringAfter1 = [stringBefore stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"whitespaceCharacterSet : %@", stringAfter1);


/* 결과
 whitespaceCharacterSet : I Wanna be a iPHone developer !!
 */

//공백과 탭 및 개행 제거
NSString *stringAfter2 = [stringBefore stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"whitespaceAndNewlineCharacterSet : %@", stringAfter2);


/* 결과
 whitespaceAndNewlineCharacterSet : I Wanna be a iPHone developer !!
 */

// 토큰(구분자)를 이용해서 NSString을 NSArray로 분리
NSString *string1 = @"I Wanna be a iPHone developer !!";
NSArray *array1 = [string1 componentsSeparatedByString:@" "];
NSLog(@"componentsSeparatedByString : %@", array1);


/* 결과
 componentsSeparatedByString : (
 I,
 Wanna,
 be,
 a,
 iPHone,
 developer,
 "!!"
 )
 */

//2. 여러 개의 토근을 사용할 경우
NSString *string2 = @"I-Wanna-be-a/iPHone-developer/!!";
NSArray *array2 = [string2 componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"-/"]];
NSLog(@"componentsSeparatedByCharactersInSet : %@", array2);


/* 결과
 componentsSeparatedByCharactersInSet : (
 I,
 Wanna,
 be,
 a,
 iPHone,
 developer,
 "!!"
 )
 */



//3. 스트링에 공백이 없고, 각 문자로 분리할 경우
NSString *string = @"abcdefghijklmn";
NSMutableArray *mArray = [[NSMutableArray alloc] initWithCapacity:[string length]];
for (int i = 0; i < [string length]; i++) {
NSString *ichar  = [NSString stringWithFormat:@"%c", [string characterAtIndex:i]];
[mArray addObject:ichar];
}
NSLog(@"%@", mArray);

/* 결과
  (
 a,
 b,
 c,
 d,
 e,
 f,
 g,
 h,
 i,
 j,
 k,
 l,
 m,
 n
 )
 */

//문자로 되어 있는 배열을 토큰(구분자)를 이용해서 다시 합치는 방법
NSArray *array3 = [NSArray arrayWithObjects:@"I", @"Wanna", @"be", @"a", @"iPHone", @"developer", @"!!", nil];
NSString *string3 = [array3 componentsJoinedByString:@" "];
NSLog(@"componentsJoinedByString : %@", string3);
NSString *string3_1 = [array3 componentsJoinedByString:@"-"];
NSLog(@"componentsJoinedByString : %@", string3_1);


/* 결과
 componentsJoinedByString : I Wanna be a iPHone developer !!
 componentsJoinedByString : I-Wanna-be-a-iPHone-developer-!!
 */

// 두 개의 문자열 합치는 방법
//case 1
NSString *string4_1 = @"I Wanna be";
NSString *string4_2 = @" a iPHone developer !!";
NSString *string4_3 = [string4_1 stringByAppendingString:string4_2];
NSLog(@"stringByAppendingString : %@", string4_3);

//case 2
NSString *string5_1 = @"I Wanna be";
NSString *string5_2 = @" a iPHone developer !!";
string5_1 = [string5_1 stringByAppendingString:string5_2];
NSLog(@"stringByAppendingString : %@", string5_1);

//case 3 : NSMutableString 인 경우...
NSMutableString *string6_1 = @"I Wanna be";
NSString *string6_2 = @" a iPHone developer !!";
[string6_1 appendString:string6_2];



// 입력받은 문자열이 원본 문자열에 포함되어 있는지 검색하는 방법
NSString *string7 = @"I wanna be a iPhone developer!";
NSString *text = @"be";
NSLog(@"원문 : %@", string7);
NSLog(@"찾을문자 : %@", text);


NSRange range = [string7 rangeOfString:text];
if(range.location == NSNotFound)
NSLog(@"not found");
else
{
NSLog(@"해당 문자열을 찾았습니다. ");
NSLog(@"after : %@", [string7 substringFromIndex:range.location]);
NSLog(@"before : %@", [string7 substringToIndex:range.location]);
NSLog(@"range : %@", [string7 substringWithRange:range]);
}


/*
 원문 : I wanna be a iPhone developer!
 찾을문자 : be
 해당 문자열을 찾았습니다. 
 after : be a iPhone developer!
 before : I wanna 
 range : be
 */

댓글 없음:

댓글 쓰기