iOS开发:Swift/Objective-C高效生成随机字符串
原文连接
Objective-C版
// 随机生成字符串(由大小写字母、数字组成)
+ (NSString *)random: (int)len {
char ch[len];
for (int index=0; index<len; index++) {
int num = arc4random_uniform(75)+48;
if (num>57 && num<65) { num = num%57+48; }
else if (num>90 && num<97) { num = num%90+65; }
ch[index] = num;
}
return [[NSString alloc] initWithBytes:ch length:len encoding:NSUTF8StringEncoding];
}
// 随机生成字符串(由大小写字母组成)
+ (NSString *)randomNoNumber: (int)len {
char ch[len];
for (int index=0; index<len; index++) {
int num = arc4random_uniform(58)+65;
if (num>90 && num<97) { num = num%90+65; }
ch[index] = num;
}
return [[NSString alloc] initWithBytes:ch length:len encoding:NSUTF8StringEncoding];
}
Swift版
extension String {
/// 生成随机字符串
///
/// - Parameters:
/// - count: 生成字符串长度
/// - isLetter: false=大小写字母和数字组成,true=大小写字母组成,默认为false
/// - Returns: String
static func random(_ count: Int, _ isLetter: Bool = false) -> String {
var ch: [CChar] = Array(repeating: 0, count: count)
for index in 0..<count {
var num = isLetter ? arc4random_uniform(58)+65:arc4random_uniform(75)+48
if num>57 && num<65 && isLetter==false { num = num%57+48 }
else if num>90 && num<97 { num = num%90+65 }
ch[index] = CChar(num)
}
return String(cString: ch)
}
}
使用
/// 大小写字母和数字组成
let string1 = String.random(100)
/// 大小写字母组成
let string2 = String.random(100, true)
iOS开发:Swift/Objective-C高效生成随机字符串的更多相关文章
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- iOS开发Swift篇—(七)函数(1)
iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 func 函数名(形参列表) -> 返回值类型 { // 函数体... } (2)形参列表的格式 形参名1: 形参类型1 ...
- iOS开发Swift篇—简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- 李洪强iOS开发Swift篇—07_函数
李洪强iOS开发Swift篇—07_函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 ...
- 李洪强iOS开发Swift篇—01_简单介绍
李洪强iOS开发Swift篇—01_简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objec ...
- iOS开发Swift篇—(七)函数
iOS开发Swift篇—(七)函数 一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名 ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
- iOS开发Swift篇—(四)运算符
iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...
随机推荐
- 奇异值分解SVD
在介绍奇异值分解(SVD)之前我们先来回顾一下关于矩阵的一些基础知识. 矩阵基础知识 方阵 给定一个$ n×m $的矩阵$ A $,若n和m相等也就是矩阵的行和列相等那矩阵$ A $就是一个方阵. 单 ...
- Ionic3学习笔记(十三)HttpClient 实现 HTTP 请求以及踩过的一些坑
本文为原创文章,转载请标明出处 目录 猫眼API HttpClient 实现 HTTP 请求 安装 HttpClientModule 模块 创建 provider 创建 page 一些坑 坑1: 未在 ...
- 查漏补缺:Vector中去重
对于STL去重,可以使用<algorithm>中提供的unique()函数. unique()函数用于去除相邻元素中的重复元素(所以去重前需要对vector进行排序),只留下一个.返回去重 ...
- 码海拾遗:简述C++(一)
C++是Bjarne Stroustrup博士于1982年,在C语言的基础上引入并扩充了面向对象的概念后发明的一种新的程序语言.就与C语言的渊源而言,C++可以说是C语言的超集,它兼容C的一切(可能是 ...
- 80 remove duplicates from sorted array 2
| 分类 leetcode | Follow up for "Remove Duplicates": What if duplicates are allowed at most ...
- MySQL集群MGR架构for单主模式
本文转载自: https://www.93bok.com MGR简介 MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决 ...
- java线程并发工具类
本次内容主要讲Fork-Join.CountDownLatch.CyclicBarrier以及Callable.Future和FutureTask,最后再手写一个自己的FutureTask,绝对干货满 ...
- url参数格式化
getQueryBbj = (url)=>{ let urlData = url.split("?")[1]; let queryArr = urlData.split('& ...
- 关于js拖放功能的实现
这是具体的拖放代码的HTML,里面依赖两个组件:EventUtil.js是兼容浏览器添加方法的库,EventTarget.js是一个发布-订阅者模式的对象库. EventUtil.js: var Ev ...
- hibernate中cascade属性以及inverse属性
级联操作 cascadecascade的常用属性值 none 默认值 不做任何变动 save-update 保存或修改 delete 删除 all 包含save-update 和delete等行为 c ...