采取字符串中间符号的一部分?

时间:2012-03-17 15:10:45

标签: iphone ios cocoa

我希望能够将数字放在`符号后面和任何非数字字符前面并将其转换为整数。

实施例

Original String: 2*3*(123`)
Result:          123

Original String: 4`12
Result:          4

谢谢, 问候。

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式。你可以找到所有这样的事件:

NSString *mystring = @"123(12`)456+1093`";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"([0-9]+)`" options:0 error:nil];
NSArray *matches = [regex matchesInString:mystring options:0 range:NSMakeRange(0, mystring.length)];
for (NSTextCheckingResult *match in matches) {
    NSLog(@"%@", [mystring substringWithRange:[match rangeAtIndex:1]]);
}
    // 12 and 1093

如果您只需要一次,请用以下内容替换for循环:

if (matches.count>0) {
    NSTextCheckingResult *match = [matches objectAtIndex:0];
    NSLog(@"%@", [mystring substringWithRange:[match rangeAtIndex:1]]);
}

答案 1 :(得分:1)

可以有更好的方法来做到这一点,我可以快速提出这个,

NSString *mystring = @"123(12`)";
NSString *neededString = nil;
NSScanner *scanner =[NSScanner scannerWithString:mystring];
[scanner scanUpToString:@"`" intoString:&neededString];
neededString = [self reverseString:neededString];
NSLog(@"%@",[self reverseString:[NSString stringWithFormat:@"%d",[neededString intValue]]]);

要反转字符串,您可以看到this