如何使用 NSScanner? [英] How to use NSScanner?

查看:14
本文介绍了如何使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆