String是结构体,属于值传递类型,而NSString是类,属于引用类型。单看NS前缀就可以猜出,这大概是与OC有密切的关系,实际上也确实如此。
String与NSString转换:
创建String变量:
var str: String = "test"
转变为NSString类型:
var ns = str as! NSString
从NSString转变为String:
var ns: NSString = "test"
var str = ns as! String
范围Range:
范围Range多用于String字符串截取。下面一个示例为从一个网址里面截取其主要地址:
let str: String = "www.baidu.com"
let startIndex = str.index(str.startIndex, offsetBy: 4)
let endIndex = str.index(str.startIndex, offsetBy: 8)
let newStr = startIndex...endIndex
print("\(newStr)")
print("\(str[newStr])")
String.index(String.startIndex, offsetBy: )
是用来截取从前缀开始到偏移结束的字符串,下面startIndex...endIndex
创建了一个rawBits,里面存放的就是截取的字符串组成的集合。str[newStr]
就是要显示的内容即baidu。
大小写转换:
String:
大写:
str.uppercased()
小写:
str.lowercased()
NSString:
大写:
str.uppercased()
小写:
str.lowercased()
前缀/后缀判断:
String:
var str: String = "test"
print("\(str.contains("te"))")
NSString:
前缀:
var str: NSSString = "test"
print("\(str.hasPrefix("t"))")
后缀:
var str: NSSString = "test"
print("\(str.hasSuffix("t"))")