个人博客原文: http://zyden.vicp.cc/string-character/
欢迎转载,请注明出处,谢谢
使用String字面量给常量赋值
let string = "string literal value"
常量string将会自动推断为String类型
初始化一个空的String
var emptyStr = "" //使用空字符串字面量
var anotherEmptyStr = String() //使用构造方法
//两者没有区别
使用isEmpty判断空String:
if emptyStr.isEmpty {
print("have nothing here")
}
String的可变性
使用“+”连接字符串,当然也支持自加运算符”+=”
var variableStr = "LastName"
variableStr += "and FirstName"
/// variableStr is "LastName and FirstName"
//**but if:
let constantStr = "Gender"
constantStr += "and another Highlander"
///编译器会报错,被声明为常量的字符串不能被修改!
跟oc不同,swift的String通过var/let 变量/常量 标识决定其是否可变(can be mutated),而不需要选择NSString 还是 NSMutableString。
String是值类型
区别引用类型,在String在方法间传递,或者将其赋值给一个常量或者变量时,该String将会被复制(copy),而不是指向原来的对象。
String跟Characters的连接
let str = "hello world "
let char: Character = "!"
str.append(char)
// 结果str为: "hello world !"
遍历String
for char in "myStr".characters {
print(char)
}
//m
//y
//S
//t
//r
字符串插值
在字符串中插入常量变量表达式等,构造一个新的字符串”通过()”:
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
/// message is "3 times 2.5 is 7.5"
String中使用转义字符
在字符串中输入反斜线”\” 水平制表符”t” 换行”n” 双引号”“” 单引号”’” 等都需要在前面添加”\”进行转义,同时可以在转义字符后添加Unicode来进行特殊符号表情的显示:
“`
//**双引号
let wiseWords = “\”Imagination is more important than knowledge\” - Einstein”
///”Imagination is more important than knowledge” - Einstein
//**Unicode
let dollarSign = “\u{24}” // $, Unicode scalar U+0024
let blackHeart = “\u{2665}” // ♥, Unicode scalar U+2665
let sparklingHeart = “\u{1F496}” //