【发布时间】:2013-11-07 05:56:15
【问题描述】:
如何从ios中的给定字符串生成随机不重复(不重复相同字母)的字母数字字符串?
【问题讨论】:
-
你是什么意思不重复?您是否在运行时寻找唯一的字符串标识符?
如何从ios中的给定字符串生成随机不重复(不重复相同字母)的字母数字字符串?
【问题讨论】:
以下函数将获取一个字符串并将其随机化,通常输入字符串中的每个字符仅一次:
- (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;
}`
【讨论】: