首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString在NSString中查找单词和下一个单词

NSString在NSString中查找单词和下一个单词
EN

Stack Overflow用户
提问于 2012-02-15 15:47:19
回答 2查看 336关注 0票数 0

我有一个NSString *paragraph;,里面满是N个单词。在这里我保证:

...

姓名: David

姓氏:约翰逊

..。

我要做的是从这条绳子里找到大卫和约翰逊。然而,我不知道名字是什么提前(大卫可能是约翰,克里斯,等等)

在C#中,我只需要找到以名字开头的行:然后用“”分隔符分隔单词。但我搞不懂在目标C里该怎么做

任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-15 16:03:31

我会用NSScanner。如下所示:

代码语言:javascript
复制
NSString *lastName;
NSString *firstName;
NSString *text = @"Foobar\nFirst Name: David\nLast Name: Johnson\nFoobaz\nBarBaz";

NSScanner *textScanner = [NSScanner scannerWithString:text];

if ([textScanner scanUpToString:@"\nFirst Name: " intoString:NULL]) {
    [textScanner scanString:@"First Name: " intoString:NULL];
    [textScanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&firstName];
}

// if last name always comes after first name there's no need to do this:
[textScanner setScanLocation:0];

if ([textScanner scanUpToString:@"\nLast Name: " intoString:NULL]) {
    [textScanner scanString:@"Last Name: " intoString:NULL];
    [textScanner scanUpToCharactersFromSet:[NSCharacterSet newlineCharacterSet] intoString:&lastName];
}    

NSLog(@"%@ %@", firstName, lastName);
票数 2
EN

Stack Overflow用户

发布于 2012-02-15 15:53:19

首先,使用componentsSeparatedByString根据行拆分字符串

代码语言:javascript
复制
NSArray* lines = [paragraph compontentsSeparatedByString:@"\n"];

然后,可以筛选出以名字开头的行。

代码语言:javascript
复制
NSPredicate* firstNamePredicate = [NSPredicate predicateWithFormat:@"SELF beginswith 'First Name:'"];
NSArray* filteredArray = [lines filteredArrayUsingPredicate:firstNamePredicate];

然后,您可以根据空格进行拆分,并查找"Name:“token后面的单词。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9296500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档