0

重複の可能性:
NSStringテキストを逆にする

私はobjectovecを初めて使用します。文字列を持つ配列があります。各文字列を逆にする方法は?

どの方法でNSArrayNSstringを助けてくれますか?

配列に文字列を逆にしたい。

ありがとう

4

5 に答える 5

3

逆文字列を返すメソッドを作成します。

-(NSString *)reverseString:(NSString *)string{
    NSString *reverseString=[NSString new];
    for (NSInteger i=string.length-1; i>-1; i--) {
        reverseString=[reverseString stringByAppendingFormat:@"%c",[string characterAtIndex:i]];
    }
    return reverseString;
}

あなたの方法のいずれかで:

NSMutableArray *names=[NSMutableArray arrayWithObjects:@"anoop",@"johnson",@"wasim",nil];
for (NSInteger i=0; i<names.count; i++) {
    names[i]=[self reverseString:names[i]];
}
NSLog(@"%@",names);
于 2013-01-21T14:26:00.510 に答える
1
NSString *str=textEntered.text;//
    NSMutableArray *temp=[[NSMutableArray alloc] init];
    for(int i=0;i<[str length];i++)
    {
        [temp addObject:[NSString stringWithFormat:@"%c",[str characterAtIndex:i]]];
    }
    temp = [NSMutableArray arrayWithArray:[[temp reverseObjectEnumerator] allObjects]];
    NSString *reverseString=@"";
    for(int i=0;i<[temp count];i++)
    {
        reverseString=[NSString stringWithFormat:@"%@%@",reverseString,[temp objectAtIndex:i]];
    }
    NSLog(@"%@",reverseString);

逆文字列の別の方法 NSStringEnumerationOptions

- (NSString *)reverseString:(NSString *)string {
    NSMutableString *reversedString = [[NSMutableString alloc] init];
    NSRange fullRange = [string rangeOfString:string];
    NSStringEnumerationOptions enumerationOptions = (NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences);
    [string enumerateSubstringsInRange:fullRange options:enumerationOptions usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
        [reversedString appendString:substring];
    }];
    return reversedString;
}
于 2013-01-21T14:26:57.503 に答える
1

この助けを願っています

NSString *str=textEntered.text;//
    NSMutableArray *temp=[[NSMutableArray alloc] init];
    for(int i=0;i<[str length];i++)
    {
        [temp addObject:[NSString stringWithFormat:@"%c",[str characterAtIndex:i]]];
    }
    temp = [NSMutableArray arrayWithArray:[[temp reverseObjectEnumerator] allObjects]];
    NSString *reverseString=@"";
    for(int i=0;i<[temp count];i++)
    {
        reverseString=[NSString stringWithFormat:@"%@%@",reverseString,[temp objectAtIndex:i]];
    }
    NSLog(@"%@",reverseString);
于 2013-01-21T14:27:38.073 に答える
0

これを使用して文字列を反転し、同じインデックスで配列に格納します。

-(NSString*)reverseString:(NSString*)string {
    NSMutableString *reversedString;
    int length = [string length];
    reversedString = [NSMutableString stringWithCapacity:length];
    while (length--) {
            [reversedString appendFormat:@"%c", [string characterAtIndex:length]];
    }
    return reversedString;
}

ただし、可変文字列がある場合は、カテゴリを作成できます

@interface NSMutableString (Reverse)
- (void)reverseString;
@end

@implementation NSMutableString (Reverse)

- (void)reverseString {
    for (int i = 0; i < self.length/2; i++) {
        int l = self.length - 1 - i;

        NSRange iRange = NSMakeRange(i, 1);
        NSRange lRange = NSMakeRange(l, 1);

        NSString *iStr = [self substringWithRange:iRange];
        NSString *lStr = [self substringWithRange:lRange];

        [self replaceCharactersInRange:iRange withString:lStr];
        [self replaceCharactersInRange:lRange withString:iStr];
    }
}

@end

そして、あなたはこのようなこのカテゴリーの方法を使うことができます

NSArray *arr = [NSArray arrayWithObjects:[@"hello" mutableCopy], [@"Do it now" mutableCopy], [@"Test string, 123 123" mutableCopy], nil];
NSLog(@"%@",arr);
[arr makeObjectsPerformSelector:@selector(reverseString)];
NSLog(@"%@",arr);
于 2013-01-21T14:30:24.703 に答える
0

使用する

unichar c[yourstring.Length];
    NSRange raneg={0,yourstring.Length};
    [yourstring getCharacters:c range:raneg];
//c will be an array of your string do what ever you wish
于 2013-01-21T14:26:22.020 に答える