ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NSString 메소드 몇가지
    프로그래밍/아이폰 2010. 8. 25. 14:26


      다른곳에 사용할려고 작성했던 문서를 그대로 올려서 수정이 필요한 곳이 좀 있습니다.    

      혹시 오타나, 문의사항 있으면 개발자 포럼의 아무게시판이나 적어주세요.





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

    . . .

    댓글

Designed by Tistory.