Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 通过搜索单词的一部分来获取单词_Objective C_String_Swift - Fatal编程技术网

Objective c 通过搜索单词的一部分来获取单词

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

在Objective-C或Swift中,如何通过搜索单词的一部分来获取单词

例如:“我知道什么都不知道”

搜索键:“否”

结果:知道


使用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)