アットウィキロゴ

Mac OS X Tips


NSStringとして持っている(複数行の)文字列中から1行の文字列を取り出す方法を説明する。 NSStringとNSScannerを使う。



   // someStringには元の文字列が入っているものとする。
   NSString *someString; 
   // locationにはsomeStringの中の検索開始位置が入っているものとする。
   unsigned int location = 0; 

   NSRange lineRange = [string lineRangeForRange:NSMakeRange(location, 0)]; 
   // lineRangeに1行の文字列の範囲(改行コ−ドを含む)が入る。
   NSString *lineString = [string substringWithRange:lineRange]; 
   // lineStringに1行の文字列(改行コ−ドを含む)が入る。

   NSString *result = @"";
   // 改行コ−ドを取り除く
   {
        // 改行コ−ドに含まれる文字の一覧
         NSString *returnCodes = @"?r?n"; 
         NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:returnCodes];
         // 改行コ−ドを取り除きたい文字列からNSScannerを用意する
         NSScanner *scanner = [NSScanner scannerWithString:lineString]; 
                 
         // 改行コ−ド文字の直前までの文字列がresultに入る
         [scanner scanUpToCharactersFromSet:charSet intoString:&result]; 
     }
        

最終更新:2008年12月22日 13:30