如何使用 NSScanner? [英] How to use NSScanner?
本文介绍了如何使用 NSScanner?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我刚刚阅读了 Apple 文档.我正在尝试获取此字符串的整数:
I've just read Apple documentation for NSScanner
.
I'm trying to get the integer of this string:
@"user logged (3 attempts)"
我找不到任何示例,如何在括号内扫描.有什么想法吗?
I can't find any example, how to scan within parentheses. Any ideas?
代码如下:
NSString *logString = @"user logged (3 attempts)";
NSScanner *aScanner = [NSScanner scannerWithString:logString];
[aScanner scanInteger:anInteger];
NSLog(@"Attempts: %i", anInteger);
推荐答案
`这是我从字符串中获取某些值的方法
`Here is what I do to get certain values out of a string
首先我定义了这个方法
- (NSString *)getDataBetweenFromString:(NSString *)data leftString:(NSString *)leftData rightString:(NSString *)rightData leftOffset:(NSInteger)leftPos;
{
NSInteger left, right;
NSString *foundData;
NSScanner *scanner=[NSScanner scannerWithString:data];
[scanner scanUpToString:leftData intoString: nil];
left = [scanner scanLocation];
[scanner setScanLocation:left + leftPos];
[scanner scanUpToString:rightData intoString: nil];
right = [scanner scanLocation] + 1;
left += leftPos;
foundData = [data substringWithRange: NSMakeRange(left, (right - left) - 1)]; return foundData;
}
然后调用它.
foundData = [self getDataBetweenFromString:data leftString:@"user logged (" rightString:@"attempts)" leftOffset:13];
leftOffset 是左边字符串的字符数
leftOffset is the number of characters for the left string
可能是一种更简单的清洁方法,但这是我的解决方案.
Could be an easier cleaner way but that was my solution.
这篇关于如何使用 NSScanner?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文