создание NSMutableString из двух других NSMutableStrings - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть две строки:

@"--U" и @"-O-" и хотели бы создать еще одну NSMutableString, которая делает @"-OU" с использованием двух данных. Кто-нибудь знает, как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 21 апреля 2011

Обратите внимание, что в следующем коде предполагается, что s1 и s2 имеют одинаковую длину, в противном случае в какой-то момент произойдет исключение, поэтому выполните проверку:)

- (NSMutableString *)concatString:(NSString *)s1 withString:(NSString *)s2
{
    NSMutableString *result = [NSMutableString stringWithCapacity:[s1 length]];
    for (int i = 0; i < [s1 length]; i++) {
        unichar c = [s1 characterAtIndex:i];
        if ( c != '-' ) {
            [result appendFormat:@"%c", c];
        }
        else {
            [result appendFormat:@"%c", [s2 characterAtIndex:i]];
        }
    }
    return result;
}
1 голос
/ 21 апреля 2011

Эта версия немного длиннее, чем у Ника, но разбивает ее на функции C и хвостовую рекурсию, поэтому она может работать быстрее.Он также обрабатывает строки различной длины, выбирая для зеркального отображения длины более короткой строки.

ПРИМЕЧАНИЕ: я еще не запускал этот код, поэтому он может содержать ошибки или пропустить что-то очевидное.

1 голос
/ 21 апреля 2011
    NSString *t1=@"-0-";
    NSString *t2=@"--U";

    NSString *temp1=[t1 substringWithRange:NSMakeRange(0, 2)];
    NSString *temp2=[t2 substringFromIndex:2];
    NSLog(@"%@",[NSString stringWithFormat:@"%@%@",temp1,temp2]);
...