BIBI BLOG

[Objective-C]NSString다루기 본문

iOS/Objective-c

[Objective-C]NSString다루기

BIBI⭐️ 2020. 10. 1. 12:07
728x90

■NSString이란

 Objective-C의 텍스트는 일반텍스트가 아닙니다. 예를 들어, C언어나 많은 프로그래밍 언어에서 문자열은 "Hello"와 같은 형태로 쓰여지며 char배열의 값이지만, Objective-C는 「객체」로 취급되는 문자열이 준비되어 있습니다. @"Hello"라고 하는 것처럼, 처음에 @기호를 붙여 써지는 방식입니다.
 이 @"Hello"문자열은 NSString클래스의 인스턴스로 취급되는 객체입니다. @"Hello"문자열은 객체 상수라고하고, NSString의 인스턴스를 상수로 다룬다는 의미입니다.

NSString* str = @"Hello";
NSLog(@"%@",str);

 「%@」라고 하는 것은 Objective-C의 오브젝트를 출력하는데 이용되는 기호입니다. 텍스트를 나타내는 「%s」가 아닌 점에서 두 문자열은 전혀 다릅니다.

■NSString의 기본 조작

○문자열 결합
NSString* 변수 = [《NSString*》stringByAppendingString:《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Hello,";
str = [str stringByAppendingString:@"Objective-C"];
NSLog(@"%@",str);

 

포맷을 사용한 결합
NSString* 변수 = [《NSString*》 stringByAppendingFormat:Fomat, 변수, …… ];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Hello";
NSString* format = @",Miss %@. How are you?";
str = [str stringByAppendingFormat:format,@"Hana"];
NSLog(@"%@",str);

 

문자열 비교
BOOL 변수 = [《NSString*》 isEqual: 《NSString*》];
BOOL 변수 = [《NSString*》 isEqualToString: 《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str1 = @"Hello";
NSString* str2 = [@"Hell" stringByAppendingString:@"o"];
BOOL res = [str1 isEqualToString:str2];
NSLog(res ? @"YES!" : @"No..");

 

문자열 길이
NSUInteger 변수 = [《NSString*》 length];
---------------------------------------------------------------------------------------------------------
int n = [@"Welcome to Objective-C." length];
NSLog(@"count: %i",n);

■NSString 문자열 추출

문자열의 처음부터 특정 인덱스까지의 문자열 반환
NSString *변수 = [《NSString*》 substringToIndex:《NSUInteger》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSString* str2 = [str substringToIndex:5];
NSLog(@"%@",str2);

 

특정 인텍스부터 문자열의 끝까지의 문자열 반환
NSString *변수 = [《NSString*》 substringFromIndex:《NSUInteger》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSString* str2 = [str substringFromIndex:5];
NSLog(@"%@",str2);

 

특정 범위의 문자열을 반환
NSString *변수 = [《NSString*》 substringWithRange:《NSRange》];
---------------------------------------------------------------------------------------------------------
NSMakeRange( 시작인덱스 , 길이 )
NSString* str = @"Welcome to Objective-C.";
NSString* str2 = [str substringWithRange:NSMakeRange(5, 7)];
NSLog(@"%@",str2);

■NSString 문자열 분할, 검색 및 바꾸기

문자열 분할
NSArray *변수 = [《NSString*》 componentsSeparatedByString:《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSArray* re = [str componentsSeparatedByString:@"Object"];
NSLog(@"%@",re);

 

문자열 위치 검색
NSRange 변수 = [《NSString*》 rangeOfString:《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSRange r = [str rangeOfString:@"Object"];
NSLog(@"%i - %i.",r.location,r.length);

 

문자열 바꾸기
NSString *변수 = [《NSString*》 stringByReplacingOccurrencesOfString:《NSString*》 withString:《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSString* re = [str stringByReplacingOccurrencesOfString:@"Objective-C" withString:@"AppleScript"];
NSLog(@"%@",re);

 

특정범위 문자열 바꾸기
NSString *변수 = [《NSString*》 stringByReplacingCharactersInRange:《NSRange》 withString:《NSString*》];
---------------------------------------------------------------------------------------------------------
NSString* str = @"Welcome to Objective-C.";
NSRange r = NSMakeRange(5, 7);
NSString* re = [str stringByReplacingCharactersInRange:r withString:@"*******"];
NSLog(@"%@",re);

 

참고:www.tuyano.com/index3?id=560001

728x90
Comments