◎위챗 : speedseoul
#import <Foundation/NSString.h>
#import <Foundation/NSObject.h>
#import <Foundation/NSAutoreleasePool.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"안녕하세요";
NSRange strRange; // 범위를 나타내는 NSRange 구조체
NSLog(@"%@", [str substringToIndex:3]); // 안녕하 (0번부터 2번까지)
NSLog(@"%@", [str substringFromIndex:3]); // 세요 (3번부터 끝까지)
NSLog(@"%@", [str substringWithRange:NSMakeRange(1,3)]);
// 녕하세 (1번부터 3개)
// NSMakeRange() 함수로부터 NSRange 구조체가 리턴된다.
NSLog(@"%@", [str substringWithRange:[str rangeOfString:@"녕하세"]]);
// str 문자열에서 "녕하세"를 찾으면 location과 length 값이 설정된
// NSRange 구조체가 리턴된다. 이는 바로 위에서 NSMakeRange(1,3) 함수가
// 리턴한 값과 동일하다.
NSLog(@"%@", [[str substringFromIndex:1] substringToIndex:3]);
// 이런 방법으로도 같은 값을 얻을 수 있다.
// 인덱스 번호 1번을 0으로 놓고 2번까지 얻는다.
strRange = [str rangeOfString:@"녕하세"];
NSLog(@"strRange.location=%lu strRange.length=%lu",
strRange.location, strRange.length); // 1, 3 (구조체 멤버 변수)
strRange = [str rangeOfString:@"짜장면"];
NSLog(@"%d", strRange.location); // -1, NSNotFound
[pool drain];
return 0;
}
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *str = @"홍길동"; // 수정 불가능한 문자열 객체 생성
NSString *immutaStr = [NSString stringWithString:str]; // 수정 불가능한 문자열 객체 생성 (깊은 복사)
NSMutableString *mutaStr = [NSMutableString stringWithString:str]; // 수정 가능한 문자열 객체 생성 (깊은 복사)
[mutaStr insertString:@" " atIndex:1]; // 1번에 삽입
NSLog(@"%@", mutaStr); // 홍 길동
[mutaStr appendString:@" 반갑습니다"]; // 맨 끝에 추가
NSLog(@"%@", mutaStr); // 홍 길동 반갑습니다
[mutaStr deleteCharactersInRange:NSMakeRange(1,3)]; // 1번부터 3개 삭제
NSLog(@"%@", mutaStr); // 홍 반갑습니다 //
[mutaStr deleteCharactersInRange:[mutaStr rangeOfString:@" 길동"]]; // 이렇게 하면 원하는 문자열을 찾아서 바로 삭제할 수 있다.
[mutaStr replaceCharactersInRange:NSMakeRange(0,1) withString:@"김"];
NSLog(@"%@", mutaStr); // 김 반갑습니다
[mutaStr setString:@"밥 먹으러 갑시다"];
NSLog(@"%@", mutaStr); // 밥 먹으러 갑시다
[pool drain]; return 0;
}