嗨我期待比较2个字符串使用目标c。一个字符串是一个单词,另一个是一个或多个单词。我怎样才能在单词级别上进行匹配?也就是说,如果来自多个单词字符串的任何单词匹配我的单个单词字符串,则返回a 1 else返回0?任何帮助非常感谢。客观c比较字符串多字
0
A
回答
0
您可以使用NSString
的rangeOfString
方法:
NSRange range = [multiWordString rangeOfString:oneWordString];
if (range.location == NSNotFound)
return 0;
else
return 1;
2
你也许会使用-[NSString rangeOfString:]
:
if ([multipleWords rangeOfString:singleWord].location != NSNotFound)
return YES;
return NO;
但它是不完美的。你可以在multipleWords
和singleWord
“返回”可能是“返回”,给你一个误报。
因此,我们必须使用NSRegularExpression
。
NSString *single = @"returning";
NSString *multiple = @"a man is returning home";
NSString *pattern = [NSString stringWithFormat:@"\\b%@\\b",single];
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
options:NSRegularExpressionCaseInsensitive
error:&error];
NSRange range = NSMakeRange(0, multiple.length);
NSUInteger matched = [regex numberOfMatchesInString:multiple options:0 range:range];
NSLog(@"number of matched = %ld", matched);
0
如果您在更长的“I AM AWARE”内搜索“WAR”,上面的代码将返回1。也许你正在寻找完整的单词匹配。
在这种情况下,你应该长字符串分割成使用的单个单词阵列...
NSArray *singleWords = [multiWordString componentsSeparatedByString: @" "];
然后解析阵列找到字符串中的oneWordString
0
您可以拆分单词使用[string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
转换为数组。然后,您可以检查数组中的每个单词以查看它是否与正在搜索的单个单词匹配。这不是最有效的方式,但它可以满足您的需求。
相关问题
- 1. 性能有很多的字符串操作比较客观C和迅速
- 2. 比较字符串指针?比较字符串C
- 3. C#多个字符串比较
- 4. Objective-C字符串比较
- 5. 字符串比较C - strcmp()
- 6. 比较字符串(C++)
- 7. C#字符串比较?
- 8. C++字符串比较
- 9. rs232字符串比较C
- 10. c#比较2字符串
- 11. C#asp.net字符串比较
- 12. C#比较字符串ignoreCase
- 13. 字符串比较C++
- 14. c#字符串比较
- 15. C++字符串比较
- 16. C#:DateTime.DayOfWeek字符串比较
- 17. 比较字符串C++
- 18. 字符串比较 - C
- 19. 字符串比较C#
- 20. Optarg字符串比较C
- 21. 字符串比较C
- 22. C# - 比较字符串
- 23. 多个字符串比较
- 24. PHP多字符串比较
- 25. 字符串,C++中的字符比较
- 26. 字符/字符串比较
- 27. 字符串字符比较
- 28. C++比较两个字符串文字
- 29. 在C中逐字比较字符串
- 30. 字符串比较C# - 全字匹配
哦,很高兴看到这一点。我期待第一个答案建议使用'NSRegularExpression' ...:P – 2013-01-05 18:16:13
“现在你有两个问题......”:-) –