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]*$