Objective c 解析NSString以查找并递增数值

Objective c 解析NSString以查找并递增数值,objective-c,nsstring,Objective C,Nsstring,我有一个字符串值 NSString *getAllData = @"0,testing,u,4,u"; 现在我想增加字符串中的所有数值,例如@1,testing,u,5,u 如何做到这一点?这是你的答案 - (void)viewDidLoad { [super viewDidLoad]; NSString *getAllData = @"0,testing,u,4,u"; NSMutableArray *resultArray = [NSMutableArray a

我有一个字符串值

NSString *getAllData = @"0,testing,u,4,u";
现在我想增加字符串中的所有数值,例如@1,testing,u,5,u

如何做到这一点?

这是你的答案

- (void)viewDidLoad 
{
    [super viewDidLoad];

    NSString *getAllData = @"0,testing,u,4,u";
    NSMutableArray *resultArray = [NSMutableArray array];
    [[getAllData componentsSeparatedByString:@","] enumerateObjectsUsingBlock:^(NSString *subString, NSUInteger idx, BOOL *stop) {
        if([self isNumeric:subString])
        {
            [resultArray addObject:[NSString stringWithFormat:@"%d", [subString intValue] + 1]];
        }
        else [resultArray addObject:subString];
    }];

    NSString *finalOutput = [resultArray componentsJoinedByString:@","];
    NSLog(@"%@", finalOutput);
}


- (BOOL)isNumeric:(NSString *)aString
{
    NSString *expression = [NSString stringWithFormat:@"^[0-9]*$"];
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression options:NSRegularExpressionCaseInsensitive error:nil];
    NSUInteger numberOfMatches = [regex numberOfMatchesInString:aString options:0 range:NSMakeRange(0, [aString length])];
    return (numberOfMatches != 0);
}
您可以使用NSScanner类查找字符串中的数字,并将其转换为整数。NSMutableString类可用于累积输出字符串

- (NSString *)incrementValuesInString:(NSString *)input
{
    NSScanner *scanner = [NSScanner scannerWithString:input];
    [scanner setCharactersToBeSkipped:nil];

    NSMutableString *result = [NSMutableString string];

    while ( ![scanner isAtEnd] )
    {
        // copy characters to the result string until a digit is found
        NSString *temp;
        if ( [scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:&temp] )
            [result appendString:temp];

        // scan the number and increment it
        if ( ![scanner isAtEnd] )
        {
            int value;
            if ( [scanner scanInt:&value] )
                [result appendFormat:@"%d", value + 1];
        }
    }

    return( [result copy] );
}

请让我们知道你已经尝试了什么…这是你能做的。。。创建此的NSArray..然后在NSArray内循环。检查数组的每个元素是否为整型。。如果是,则递增并替换数组的元素。。。完成…详细回答:规范化数据。这会让你从比这更头疼的事情中解脱出来。投票?哇!震惊…如果nsstring中有0^4个值,那么?如果nsstring中有0^4个值,那么?为此,只需将正则表达式从^[0-9]$更改为^[0-9]*$