본문 바로가기

□컴퓨터 관련/★iPhone Developer

자주 쓰는 NSString Method


NSString 

----------------------------------------------------------------------------


<Foundation 프레임워크에 포함된 class>



문자열을 다루는데 사용됩니다.


NSString *str = @"hello";




----------------------------------------------------------------------------

문자열 생성


+(id)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);


c언어의 printf() 같이 인수를 이용해, 새로운 

문자열을 만들어서 반환합니다.


NSString *str = [NSString stringWithFormat:

@"first var %d, second var %d", 1, 2];




----------------------------------------------------------------------------

글자수 검색


- (NSUInteger)length;


문자열의 문자수를 반환합니다.

유니코드 다국어 표준을 사용하여, 

1byte 이상의 문자도 정상적으로 반환됩니다.

strlen()의 byte 계산 없이, 한글도 정상적으로 반환 됨.


NSUInteger length = [str length];




----------------------------------------------------------------------------

문자열 비교


- (BOOL)isEqualToString:

       (NSString *)aString;


자신과 인수로 받은 문자열을 비교해서

 YES, NO 를 반환합니다.

'==' 을 사용하면 문자열이 아니라, 

객체의 포인터를 비교합니다.




NSString *str1 = @"first";

NSString *str2 = 

[NSString stringWithFormat:@"%@",str1];

NSString *str3 = str1;


if ([str1 isEqualToString:str2]) {

  NSLog(@"str1/str2 문자열 같음");

}


if (str1 != str2) {

  NSLog(@"str1/str2 객체 다름");

}


if (str1 == str3) {

  NSLog(@"str1/str3 객체 같음");

}





----------------------------------------------------------------------------

문자열 비교(대소문자 무시)


- (NSComparisonResult)compare:

(NSString *)string 

  options:(NSStringCompareOptions)mask;



파라미터에 or 연산자 사용가능함.

NSCaseInsensitiveSearch : 대소문자 무시

NSLiteralSearch : 대소문자 구분

NSNumericSearch : 숫자를 아스키값이 아니라, 

실제 숫자로 처리



두 문자열이 같으면 NSOrderedSame을 반환.



NSString *str1 = @"first";

NSString *str2 = @"First";



if (![str1 isEqualToString:str2]) {

  NSLog(@"str1/str2 문자열 다름");

}



if ([str1 compare:str2

 options:NSCaseInsensitiveSearch]

 == NSOrderedSame) {

  NSLog(@"str1/str2 문자열 같음");

}





----------------------------------------------------------------------------

문자열 비교(포함)


- (BOOL)hasPrefix:(NSString *)aString;

문자열 앞부분과 인수 비교


- (BOOL)hasSuffix:(NSString *)aString;

문자열 끝부분과 인수 비교


- (NSRange)rangeOfString:(NSString *)aString;

문자열 전체에서 특정문자가 있는지 검색

(위에 compare에서 사용한 옵션 사용 가능)

찾으려는 문자열이 없으면 NSNotFound 반환 





NSString *str1 = @"start nsstring search";


if ([str1 hasPrefix:@"sta"]) {

  NSLog(@"sta 시작함");

}


if ([str1 hasSuffix:@"search"]) {

  NSLog(@"search 끝남");

}


NSRange range;

range = [str1 rangeOfString:@"nsstring"];


if (range.location != NSNotFound) {

  NSLog(@"문자열에 nsstring 

포함되어 있음");

}






----------------------------------------------------------------------------

대소문자 변한



- (NSString *)uppercaseString;

- (NSString *)lowercaseString;



문자열에 포함된 모든 문자를 대문자/소문자로 변경합니다.




NSString *str = @"string";

str = [str uppercaseString];

NSLog(@"%@",str); 

 //str : "STRING"


str = [str lowercaseString];

NSLog(@"%@",str);

 //str : "string"







----------------------------------------------------------------------------

형변환> NSString  -> int, float, NSNumber…


NSString *numString = @"100";

int realNumber = [numString intValue];


int x = realNumber + 100;


NSLog(@"%d",x);

//x = 200




float로 쓸땐 [numString floatValue];

double[numString doubleValue];

. . .




www.devcel.co.kr


감사합니다 : http://underfree.tistory.com/entry/NSString-%EB%A9%94%EC%86%8C%EB%93%9C-%EB%AA%87%EA%B0%80%EC%A7%80