0

アプリケーションのスクリプトがあり、特定の番号を抽出する方法に行き詰まっています。例:

\n@JulianJear\nApplication Development 4 iPhone and iPad.\n5\n

その文字列から「4」を取得せずに「5」を削除する方法を思い付くことができませんでした。スキャナーを使うことを考えましたが、このテキストの文字数はユーザーごとに異なります。では、この数を抽出するために他にどのような方法を使用できますか?

4

2 に答える 2

2

解析されるテキストが常に次の形式である場合

<Handle>
<Title>
<Number>

すなわち

\n<Name>\n<Title>\n<Number>\n

を使用しNSScannerて文字列を解析できます。

#import <Foundation/Foundation.h>

int main(int argc, char *argv[]) {
    @autoreleasepool 
    {
        NSString *string = @"\n@JulianJear\nApplication Development 4 iPhone and iPad.\n5\n";

        NSScanner *scanner = [[NSScanner alloc] initWithString:string];
        NSCharacterSet *newlineCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"\n"];

        NSString *handle = nil;
        NSString *title = nil;
        NSString *number = nil;

        [scanner scanUpToCharactersFromSet:newlineCharacterSet intoString:&handle];
        [scanner scanUpToCharactersFromSet:newlineCharacterSet intoString:&title];
        [scanner scanUpToCharactersFromSet:newlineCharacterSet intoString:&number];

        NSLog(@"\nhandle=%@\ntitle=%@\nnumber=%d", handle, title, [number intValue]);
    }
}
于 2012-12-29T02:37:59.763 に答える
1

で文字列を分割し、\n数値を表す文字列を探すことができます。

NSArray *tokens = [str componentsSeparatedByCharactersInSet:
      [NSCharacterSet characterSetWithCharactersInString:@"\n"]];

配列内の文字tokens列を調べて、数値を表す最初の文字列を取得します。

于 2012-12-29T02:35:27.500 に答える