字符串
在 Swift 中绝大多数的情况下,推荐使用 String 类型
使用 String
的原因
String
是一个结构体,性能更高String
目前具有了绝大多数 NSString 的功能String
支持直接遍历
NSString
是一个OC
对象,性能略差Swift
提供了String
和NSString
之间的无缝转换
遍历字符串
let str = "我要飞的更High"
for s in str {
print(s)
}
字符串拼接
let str1 = "zhangsan"
let str2 = "lisi"
let i = 10
print(str1 + str2)
print("\(str1) \(str2) \(i)")
- 阶段性小结
- 直接在
""
中使用\(变量名)
的方式可以快速拼接字符串 - 小伙伴们再也不要考虑
stringWithFormat
了
- 直接在
格式化字符串
for _ in 0...10 {
let str = String(format: "zhangsan - %04d", arguments: [arc4random_uniform(100)])
print(str)
}
- 阶段性小结
- 在实际开发中,如果需要指定字符串格式,可以使用
String(format:...)
的方式 - 注意:后面的参数需要放在一个数组中
- 在实际开发中,如果需要指定字符串格式,可以使用
String & Range 的结合
以下是超级费劲的代码
let str: String = "我要飞的更High"
var subStr = str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex))
print(subStr)
建议写法
let str1: NSString = "我要飞的更High"
print(str1.substringWithRange(NSMakeRange(0, 3)))
操练:
/*
字符:
OC: char charValue = 'a';
*/
var charValue1:Character = "a"
/*
Swift和OC字符不一样
1.Swift是用双引号
2.Swift中的字符类型和OC中的也不一样, OC中的字符占一个字节,因为它只包含ASCII表中的字符, 而Swift中的字符除了可以存储ASCII表中的字符还可以存储unicode字符,
例如中文:
OC:char charValue = '李'; // 错误
Swift: var charValue2:Character = "李" // 正确
OC的字符是遵守ASCII标准的,Swift的字符是遵守unicode标准的, 所以可以存放时间上所有国家语言的字符(大部分)
*/
var charValue2:Character = "李" //正确
/*
注意: 双引号中只能放一个字符, 如下是错误写法
var charValue3:Character = "ab"
*/
/*
字符串:
字符是单个字符的集合, 字符串是多个字符的集合, 想要存放多个字符需要使用字符串
C:
char *stringValue = "ab";
char stringArr = "ab";
OC:
NSString *stringValue = "ab";
*/
var stringValue1 = "ab"
/*
C语言中的字符串是以\0结尾的, 例如:
char *stringValue = "abc\0bcd";
printf("%s", stringValue);
打印结果为abc
OC语言中的字符串也是以\0结尾的, 例如:
NSString *stringValue = @"abc\0bcd";
NSLog(@"%@", stringValue);
打印结果为abc
*/
var stringValue2 = "abc\0bcd"
print(stringValue2)
// 打印结果为abcbcd
// 从此可以看出Swift中的字符串和C语言/OC语言中的字符串是不一样的