-2

嗨,我正在尝试生成这种NSString模式,我的真实string是“ abcdefgh”我想通过使用来获取相应的字节

NSData *data=[mystring dataUsingEncoding:NSUTF8StringEncoding]
NSLog(@"%d",[data bytes]);  

将这些值复制到byte array并将总数组大小限制为24bit

然后我想创建以下模式

"abcdefgh efghabcd hgfedcba"

我怎样才能生成这种密钥?

请帮我

4

1 回答 1

0

我认为这会奏效。从这个答案中获取的 reversedString 的逻辑

#import "NSString+CustomCrypto.h"

@implementation NSString (CustomCrypto)

- (NSString *)reversedString{

    NSMutableString *reversedString = [NSMutableString stringWithCapacity:[self length]];

    [self enumerateSubstringsInRange:NSMakeRange(0,[self length])
                                 options:(NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences)
                              usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
                                  [reversedString appendString:substring];
                              }];

    return [NSString stringWithString:reversedString];
}

- (NSString *)splicedString{

    NSInteger index = [self length]/2;

    NSString *subString = [self substringFromIndex:index];
    NSString *secondString = [self substringToIndex:index];

    return [subString stringByAppendingString:secondString];
}

- (NSString *)customCryptoString{

    NSString *splicedString = [self splicedString];
    NSString *reversedString = [self reversedString];

    return [NSString stringWithFormat:@"%@ %@ %@",self, splicedString, reversedString];
}

调用string的category方法

NSLog(@"%@",[@"abcdefgh" customCryptoString]);

输出:abcdefgh efghabcd hgfedcba

于 2013-05-06T10:38:49.003 回答