使用nsscanner类扫描字符串

Rad*_*dix 4 objective-c

我想扫描这个字符串

"hello I am emp 1313 object of string class 123"
Run Code Online (Sandbox Code Playgroud)

所以在这里,我想知道它们是否存在任何整数值,如果存在,我想为此显示它我使用NSScanner类并且继承我的代码视图

NSString *str = @" hello I am emp 1313 object of string class 123";

NSString *limit = @" object";
NSScanner *scanner = [NSScanner scannerWithString:str];

int i;
[scanner scanInt:&i];
NSString *output;
[scanner scanUpToString:limit intoString:&output];
NSLog(@"%d",i);
Run Code Online (Sandbox Code Playgroud)

但问题是我无法做到这一点,我只想使用NSScanner类,所以你能否请专家给我一些关于这个的建议......

Nic*_*ore 11

尝试一下:

NSString *str = @" hello i am emp 1313 object of string class 123";
NSScanner *scanner = [NSScanner scannerWithString:str];

// set it to skip non-numeric characters
[scanner setCharactersToBeSkipped:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]];

int i;
while ([scanner scanInt:&i])
{
    NSLog(@"Found int: %d",i);
}

// reset the scanner to skip numeric characters
[scanner setScanLocation:0];
[scanner setCharactersToBeSkipped:[NSCharacterSet decimalDigitCharacterSet]];

NSString *resultString;
while ([scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:&resultString]) {
    NSLog(@"Found string: %@",resultString);
}
Run Code Online (Sandbox Code Playgroud)

它输出:

2010-10-27 14:40:39.137 so[2482:a0f] Found int: 1313
2010-10-27 14:40:39.140 so[2482:a0f] Found int: 123
2010-10-27 14:40:39.141 so[2482:a0f] Found string:  hello i am emp 
2010-10-27 14:40:39.141 so[2482:a0f] Found string:  object of string class 
Run Code Online (Sandbox Code Playgroud)