iOS Obj-C等效于JavaScript's到字符串(16)
iOS Obj-C Equivalent to JavaScript's toString(16)
我正在尝试从一个随机数生成一个十六进制id字符串。在JavaScript中我做:
var id = (
Math.random() * Math.pow(10, 17) +
Math.random() * Math.pow(10, 17) +
Math.random() * Math.pow(10, 17) +
Math.random() * Math.pow(10, 17)
).toString(16);
结果是一个随机id,如:"2d50e9b4835d7e0"。
有人知道iOS中有类似的方法吗?我可以用它来做同样的事情?我希望iOS调用的结果返回一个相同长度(15个字符)的字符串。
您可以使用以下代码在目标C中获得随机数
-(int)getRandomNumberBetween:(int)from to:(int)to {
return (int)from + arc4random() % (to-from+1);
}
编辑为了获得十六进制字符串,我更改了此方法
- (NSString *)getHexString
{
NSString *longlongstr = [NSString stringWithFormat:@"%d%d%d%d%d%d",[self getRandomNumberBetween:100 to:999],[self getRandomNumberBetween:100 to:999],[self getRandomNumberBetween:100 to:999],[self getRandomNumberBetween:100 to:999],[self getRandomNumberBetween:100 to:999],[self getRandomNumberBetween:100 to:999]];
long long longnumber = [longlongstr longLongValue];
NSString *hexStr = [NSString stringWithFormat:@"%llx",longnumber];
NSLog(@"%@",hexStr);
return hexStr;
}
所以你的代码看起来像
NSString *hexStr = [self getHexString];
您可以根据需要对其进行修改,它会为您提供15位十六进制值
我找到了一个解决方案:
#define cPow pow(3, 19)
long long val = ((
rand() * cPow +
rand() * cPow +
rand() * cPow +
rand() * cPow
));
NSString *newId = [[NSString alloc] initWithFormat:@"%llx", val];
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 如何在Angular JS中将obj转换为字符串
- JS:将字符串“foo[bar]”转换为代码 obj.foo.bar 的简单方法
- 使用三个.js加载字符串中的 .obj 存储
- 是否可以在 JavaScript 中将 OBJ 与字符串连接起来
- 为什么来自obj.getAttribute的json字符串不想解析
- 从字符串创建深层对象,如“obj.obj1.obj2.data”
- 将字符串转换为 JSON obj 或数组 JavaScript
- 如何在函数声明字符串中匹配“obj.foo”
- js,log对象与log'字符串'+obj
- iOS Obj-C等效于JavaScript's到字符串(16)
- 如何用字符串在obj上运行ngRepeat
- 将字符串从网页传递到php,然后传递到Obj-C命令行工具的正确方法