2

私はこの2日間問題に苦しんでいて、コミュニティが助けてくれるかどうか疑問に思っていました。数値のNSStringがあり、別の文字列の数値の量と一致する数値の数を比較する必要があります。

例:

     String 1: 14523 25623 651 88

     String 2: 9123 88 14523 333

これらの2つの文字列に基づいて、両方に「88」と「14523」が含まれていることがわかります。したがって、2つの一致があります。この比較をコードで理解する方法がわかりません。

文字列1を分割し、各値を文字列2と比較するためのサブ文字列を単純に作成することを考えましたが、これは非常に非効率的です。もっと良い方法があると思います。

誰かアドバイスはありますか?例をいただければ幸いです。ありがとうございました!

4

3 に答える 3

7

文字列ごとにサブ文字列のセットを作成します。次に、2つのセットを交差させて、共通のサブストリングを見つけます。

NSString *string1 = @"14523 25623 651 88";
NSString *string2 = @"9123 88 14523 333";
NSSet *setA = [NSSet setWithArray:[string1 componentsSeparatedByString:@" "]];
NSSet *setB = [NSSet setWithArray:[string2 componentsSeparatedByString:@" "]];
NSMutableSet *common = [setA mutableCopy];
[common intersectSet:setB];
NSLog(@"common substrings = %@", common);
于 2012-11-04T23:45:42.697 に答える
3
    NSString * str1 = @ "14523 25623 651 88";
    NSString * str2 = @ "9123 88 14523 333";
    NSArray * branchs = [str1 componentsSeparatedByString:@ ""];
    NSArray * branchs2 = [str2 componentsSeparatedByString:@ ""];
    NSMutableSet * intersection = [NSMutableSet setWithArray:chunks];
    [交差点intersectSet:[NSSet setWithArray:chunks2]];
    NSLog(@ "%@"、[交差点allObjects]);
    
于 2012-11-04T23:50:21.960 に答える
0

2つの配列を作成します。

メソッドcomponentsSeparatedByStringを含む最初の配列と文字列1。

文字列2のメソッドcomponentsSeparatedByStringを持つ2番目の配列。

次に、2番目の配列から最初の配列に要素を追加します。最初の配列にこの要素が含まれていない場合にのみ追加します。

于 2012-11-04T23:52:38.793 に答える