Генерация случайной буквенно-цифровой строки в IOS

Как создать случайную неповторяющуюся (без повторения одного и того же алфавита) буквенно-цифровую строку из заданной строки в ios?

2 ответа

Решение

Следующая функция берет строку и рандомизирует ее, обычно каждый символ из входной строки только один раз:

- (NSString *)randomizeString:(NSString *)str
{
    NSMutableString *input = [str mutableCopy];
    NSMutableString *output = [NSMutableString string];

    NSUInteger len = input.length;

    for (NSUInteger i = 0; i < len; i++) {
        NSInteger index = arc4random_uniform((unsigned int)input.length);
        [output appendFormat:@"%C", [input characterAtIndex:index]];
        [input replaceCharactersInRange:NSMakeRange(index, 1) withString:@""];
    }

    return output;
}
-(NSString *)randomStringWithLength: (int) len 

{

  NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

   NSMutableString *randomString = [NSMutableString stringWithCapacity: len];

    for (int i=0; i<len; i++) 
{

         [randomString appendFormat: @"%C", [letters characterAtIndex: arc4random() % [letters length]]];
    }

    return randomString;
}`
Другие вопросы по тегам