Objective c 通过搜索单词的一部分来获取单词
在Objective-C或Swift中,如何通过搜索单词的一部分来获取单词 例如:“我知道什么都不知道” 搜索键:“否” 结果:知道Objective c 通过搜索单词的一部分来获取单词,objective-c,string,swift,Objective C,String,Swift,在Objective-C或Swift中,如何通过搜索单词的一部分来获取单词 例如:“我知道什么都不知道” 搜索键:“否” 结果:知道 使用Swift 2查找?的任何方法我们都可以使用“containsString”和“filter”: NSString *fullString = @"I know everything"; NSString *stringToFind = @"no"; NSArray *components = [fullString componentsSeparatedB
使用Swift 2查找?的任何方法我们都可以使用“containsString”和“filter”:
NSString *fullString = @"I know everything";
NSString *stringToFind = @"no";
NSArray *components = [fullString componentsSeparatedByString:@" "];
for (NSString *word in components)
{
NSRange range = [word rangeOfString:stringToFind options:NSCaseInsensitiveSearch];
if (range.location != NSNotFound)
{
NSLog(@"word we are looking for: %@", word);
}
else
{
NSLog(@"word %@ not contains substring", word);
}
}
结果:
[“知道”]
如果给它一个包含多个匹配词的句子,它将返回所有匹配项:
let fullString = "I know everything, nothing else"
结果:
[“知道”,“什么都不知道”]
斯威夫特3也一样:
let wordsFound = fullString.components(separatedBy: " ").filter { $0.contains(stringToFind) }
打印[“知道”,“什么都不知道”]这并不能回答问题:OP想要得到包含搜索字符串的整个单词,而不仅仅是
包含/不包含
这只是一个概念,SaRaVaNaN可以用它做他想做的一切你需要添加一些代码,你已经尝试过的,研究过的,等等,没有空格的句子呢?没问题。如果没有空格,那就是一个大字但是如果你想用标点符号而不是空格来切分句子,那么你可以用按字符分隔的组件集
替换组件集
,并使用标点字符集。例如,我的错误,我认为如果找不到作为参数传递的字符串,ComponentSeparatedByString将返回一个空数组。但它返回原始字符串,整洁:)
let wordsFound = fullString.components(separatedBy: " ").filter { $0.contains(stringToFind) }
let testString = "I know everything, nothing else"
let testWord = "no"
var wordsContainingTestWord = [String]()
let words = testString.componentsSeparatedByString(" ")
for word in words {
if word.containsString(testWord) {
wordsContainingTestWord.append(word)
}
}
print(wordsContainingTestWord)