在多个字符串中拆分标签

时间:2012-04-23 10:21:19

标签: objective-c xcode string nsstring compare

对于我的应用程序我需要比较单词而不是整个单词。如果它在单词中的相同位置,我希望它能够重新定位一封信。所有单词的最大长度为6.

两个单词都显示在标签中。

label1& LABEL2

例如,如果label1中的单词是“button”,我想将其拆分为6个字符串。

string1: B
string2: u
string3: t
string4: t 
string5: o
string6: n

然后对于我的label2是'砖'将它分成6到。

string7: B
string8: r
string9: i
string10: c 
string11: k
 string12: s

现在我可以比较字符串1:string7等。

这样我可以比较单词中的所有字符吧?我的问题是,这是正确的方法吗?如果代码看起来如何呢?

我希望有人知道我的意思并知道如何做到这一点!谢谢

1 个答案:

答案 0 :(得分:0)

我会做这样的事情:

- (void)findEqualsIn:(NSString *)string1 and:(NSString *)string2 {
    for (int i = 0; i < [string1 length] && i < [string2 length]; i++) {
        if ([string1 characterAtIndex:i] == [string2 characterAtIndex:i]) {
            NSLog(@"%c is at index %i of both strings", [string1 characterAtIndex:i], i);
        }
    }
}

我不知道你想用它做什么或者你想如何返回信息(也许是一个NSArray,其中包含所有匹配的索引?)

修改

- (void)findEqualsIn:(NSString *)string1 and:(NSString *)string2 {
    NSMutableArray *string1chars = [[NSMutableArray alloc] init];
    NSMutableArray *string2chars = [[NSMutableArray alloc] init];

    //filling the string1chars array
    for (int i = 0; i < [string1 length]; i++) {
        [string1chars addObject:[NSString stringWithFormat:@"%c", [string1 characterAtIndex:i]]];
    }

    //filling the string2chars array
    for (int i = 0; i < [string2 length]; i++) {
        [string2chars addObject:[NSString stringWithFormat:@"%c", [string2 characterAtIndex:i]]];
    }

    //checking if they have some letters in common on the same spot
    for (int i = 0; i < [string1chars count] && i < [string2chars count]; i++) {
        if ([[string1chars objectAtIndex:i] isEqualToString:[string2chars objectAtIndex:i]]) {
            //change the color of the character at index i to green
        } else {
            //change the color of the character at index i to the standard color
        }
    }
}