본문 바로가기

Dev/Objective-C

(펌) NSString 메소드 몇가지

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"12];

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

글자수 검색

- (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];

. . .




Read more: http://underfree.tistory.com/23#ixzz2M58Q2RyU

Posted by UnderFree