0

我有一个应用程序的脚本,我被困在一种提取特定数字的方法上例如:

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

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

4

2 回答 2

2

如果被解析的文本始终具有以下格式

<Handle>
<Title>
<Number>

IE

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

您可以使用 anNSScanner来解析字符串:

#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 回答