问题的第一部分是将每个字符串分成由逗号分隔的子字符串。
要创建子字符串,您可以使用
[string substringFromIndex:index] - 从该索引中获取 NSString
[string substringToIndex:index] - 获取从开头到该索引的 NSString
或者你可以将它组合成
[string substringWithRange:NSMakeRange(fisrtIndex, secondIndex)] - 获取从第一个索引到第二个索引的字符串
这些是基本操作。但在这种情况下,您可以专门使用更多内容:
[string componentsSeparatedByString:@","] 获取包含所有子字符串的 NSArray。那将有'{' 和'}' 出现在第一个和最后一个组件中的问题。这可以通过多种方式解决:
- 首先使用已经解释过的子字符串方法修剪字符串
- 完全使用另一种方法
[string componentsSeparatedByCharactersInSet: [NSCharacterSet characterSetWithCharactersInString:@",{"]] 这个方法的问题是,因为你的字符串以一个分隔符开始/结束,你会得到第一个/最后一个组件一个空字符串。您可以将其从数组中删除或忽略它或选择其他方法,您的选择。
现在您已经知道如何获取子字符串,您只需要知道如何比较两者即可。从字面上看,有很多方法可以做到这一点。我只是举几个例子。当然每种方案都有自己的优缺点和代码复杂度。
1 - 使用isEqualToString:逐个比较每个子字符串
2 - 使用[string2 rangeOfString:substring].location != NSNotFound比较原始字符串之一的每个子字符串与完整的第二个原始字符串
3 - 如果你有 iOS 8 或 OS X Yosemite,你可以使用[string2 containsString:substring]
4 - 您可以将子字符串数组转换为集合,然后按照 Ankit Srivastava 的建议进行比较
5 - 您可以使用removeObjectsInArray 来获取两者之间不常见的子字符串,然后使用新创建的数组将removeObjectsInArray 用于原始数组,并且只有共同点...
真正的可能性几乎是无限的