iPhone SDK:如何从字符串中提取此数字

时间:2012-12-29 02:28:54

标签: objective-c foundation

我有一个应用程序的脚本,我一直在提取一个特定的数字 例如:

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

我还没有找到一种方法来删除“5”而不从该字符串中获取“4”。我想过使用扫描仪,但每个用户的这段文字中的字符数量会有所不同。那么,有什么其他方法可以用来提取这个数字?

2 个答案:

答案 0 :(得分: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]);
    }
}

答案 1 :(得分:1)

您可以在\n上拆分字符串,并查找代表数字的字符串:

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

浏览tokens数组中的字符串,并取第一个代表数字的字符串。