-3

私はObjectiveCのキャラクターレベルでUNIONとINTERSECTIONをとるような要件があります。

"StringA"、 "StringB"

上記の文字列の(UNION)の場合の結果: "StringAB"上記の文字列の(交差)の場合の結果: "String"

どんな助けでもいただければ幸いです。

4

1 に答える 1

0

stackoverflowメンバーの助けを借りて、最終的に私はこれらの問題の解決策を得ました

交差点:

NSMutableSet *set1 = [NSMutableSet setWithArray: array1];
NSSet *set2 = [NSSet setWithArray: array2];
[set1 intersectSet: set2];
NSArray *resultArray = [set1 allObjects];

UNION:2つの文字列を連結し、その文字列から重複する文字を削除すると、最終的にUNIONが取得されます:)

SString *input = @"addbcddaa";
NSMutableSet *seenCharacters = [NSMutableSet set];
NSMutableString *result = [NSMutableString string];
[input enumerateSubstringsInRange:NSMakeRange(0, input.length) options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
    if (![seenCharacters containsObject:substring]) {
        [seenCharacters addObject:substring];
        [result appendString:substring];
    }
}];
NSLog(@"String with duplicate characters removed: %@", result);
NSLog(@"Sorted characters in input: %@", [seenCharacters.allObjects sortedArrayUsingSelector:@selector(compare:)]);

ありがとうございました!

于 2012-09-11T11:12:23.417 に答える