比较具有不同顺序的字符串

Jon*_*han 0 objective-c ios

我有一个比较字符串的if语句,但我想比较具有相同单词但顺序不同的字符串并将其返回为true.

字符串1a,b,c

string 2 b,c,a

如何比较它们并让if语句将其视为相同的字符串?

Mar*_*rio 5

使用componentsSeperatedByString分隔字符串:使用任何字符串分隔单词(逗号,空格)并将结果放入NSSet.对两个字符串执行此操作并比较集合是否相等.

使用mutableArray而不是Set的修改方法,用于考虑重复字符串的问题(如注释中所述):

-(BOOL) string: (NSString*) string1 isEqualTo: (NSString*) string2 {
  if (string1.length != string2.length) return NO;
  if ([string1 isEqualToString: string2]) return YES;

  NSMutableArray *array1 = [NSMutableArray arrayWithArray: [string1 componentsSeperatedByString: @","]];
  NSMutableArray *array2 = [NSMutableArray arrayWithArray: [string2 componentsSeperatedByString: @","]];

  [array1 sortUsingSelector: @selector(compare:)];
  [array2 sortUsingSelector: @selector(compare:)];

  return [array1 isEqualToArray: array2];
}
Run Code Online (Sandbox Code Playgroud)

  • ......但是a,c,a,b和a,b,c将与YES进行比较.不知道,如果是这样的话 (2认同)