首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Cocoa中生成随机字母数字字符串

在Cocoa中生成随机字母数字字符串
EN

Stack Overflow用户
提问于 2010-04-14 07:06:23
回答 17查看 94.4K关注 0票数 148

我想调用一个方法,将长度传递给它,并让它生成一个随机的字母数字字符串。

有没有可能有一堆这样的函数的实用程序库呢?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2010-04-14 07:42:58

这里有一个快速而粗糙的实现。还没有经过测试。

代码语言:javascript
复制
NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

-(NSString *) randomStringWithLength: (int) len {

    NSMutableString *randomString = [NSMutableString stringWithCapacity: len];

    for (int i=0; i<len; i++) {
         [randomString appendFormat: @"%C", [letters characterAtIndex: arc4random_uniform([letters length])]];
    }

    return randomString;
}
票数 316
EN

Stack Overflow用户

发布于 2014-01-19 02:37:53

不完全是你想要的,但还是有用的:

代码语言:javascript
复制
[[NSProcessInfo processInfo] globallyUniqueString]

示例输出:

代码语言:javascript
复制
450FEA63-2286-4B49-8ACC-9822C7D4356B-1376-00000239A4AC4FD5
票数 107
EN

Stack Overflow用户

发布于 2012-01-03 20:47:42

代码语言:javascript
复制
NSString *alphabet  = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXZY0123456789";
NSMutableString *s = [NSMutableString stringWithCapacity:20];
for (NSUInteger i = 0U; i < 20; i++) {
    u_int32_t r = arc4random() % [alphabet length];
    unichar c = [alphabet characterAtIndex:r];
    [s appendFormat:@"%C", c];
}
票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2633801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档