0

「SANFRANSICO」と「CHICAGO」のような 2 つの文字列があります。

今、文字列が逆になっているようにしたいのですが、「OOCGIASCNIAHRCFNAS」のような単一の文字列になっています

コードを実行しましたが、間違った結果が得られます

私のコードをチェックしてください

- (NSString *)changeString1:(NSString *)string string2:(NSString *)string2{
    int first = [string length];
    int second = [string2 length];
    int total = first+second;
    NSMutableString *str = [[NSMutableString alloc] init];
    string = [self reverseString:string];
    string2 = [self reverseString:string2];

    for (int i=0; i<total+1; i++) 
    {
        if (i%2==1) {
            int j = i/2;
            if(j < second){
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string2 characterAtIndex:j]];
                [str appendString:ichar];
            }
            else{
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string characterAtIndex:j+1]];
                NSLog(@"222 %d %@",j+1, ichar );
                [str appendString:ichar];
                check = YES;
            }
        }
        else {
            int j = i/2;
            if(check == YES){
            }
            else{
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string characterAtIndex:j]];
                 NSLog(@"1111 %d %@",j, ichar );
                [str appendString:ichar];
            }
        }
    }
    return str;

}
4

1 に答える 1

0

この質問を投稿して申し訳ありませんが、この質問を投稿した直後に答えを見つけました

私の答えをチェックしてください

- (NSString *)changeString1:(NSString *)string string2:(NSMutableString *)string2{
    int first = [string length];
    int second = [string2 length];
    string = [self reverseString:string];
    string2 = [self reverseString:string2];

    for(int i =second; i<first; i ++){
        [string2 appendString:@" "];
    }
   int total = first*2;
    NSMutableString *str = [[NSMutableString alloc] init];
    for (int i=0; i<total; i++) 
    {
        if (i%2==1) {
            int j = i/2;
            if(j < second){
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string2 characterAtIndex:j]];
                [str appendString:ichar];
            }
        }
        else {
            int j = i/2;
            if(j < first){
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string characterAtIndex:j]];
                [str appendString:ichar];
            }
            else{
                NSString *ichar  = [NSString stringWithFormat:@"%c", [string2 characterAtIndex:j]];
                [str appendString:ichar];
            }
        }
    }
    NSLog(@"str %@", str);
    return str;


}
于 2012-07-18T07:17:26.117 に答える