在oc中有NSMutableString和NSString两种类型的字符串,但在swift中分别在定义的时候使用let和var来代表是否可以操作。let和var也通用于其他类型。使用let修饰的为不可变,使用var修饰的可变。
//使用var修饰可以动态的改变值 var varStr = "nihao" varStr = "hello" //使用let修饰编译不能通过 let letStr = "let nihao" letStr = "hello"
常用方法
1、字符串拼接
字符串和字符的值可以通过+号来拼接并创建一个新的字符串
var varStr = "nihao" varStr = "hello" let letStr = "let nihao" var newStr = varStr + letStr print(newStr)
可以通过+=运算符将一个字符串添加到一个已经存在的字符串常量上,当然此字符串必须是var修饰的
var varStr = "nihao"let letStr = "let nihao"varStr += letStr print(varStr)
可以同过append附加给字符串一个字符
var varStr = "nihao" let char :Character = "!" varStr.append(char) print(varStr)
2、字符串的带入
将需要操作的变量或者常量用()包住,并在前面带上\符
let number = 5let str = "\(number) 个人有 \(number * 3) 本书"print(str)输出结果:5 个人有 15 本书
3、字符串个数
获取字符串个数使用strlen函数
//字符串个数 let str = "ajsdjofijweoifjaowiejfoiaw" let countOfStr = (strlen(str)) print(countOfStr)
4、字符串大小写
//字符串大小写 let normal = "nihao" let uppercaseNormal = normal.uppercaseString print(uppercaseNormal) //结果为:NIHAO let lowercaseNormal = uppercaseNormal.lowercaseString print(lowercaseNormal) //结果为:nihao //首字母大写 var str = "hello my name is zjh" let capitalezedStr = str.capitalizedString print(capitalezedStr) //结果为:Hello My Name Is Zjh
5、字符串截取
swift中截取字符串的坐标参数不是int类型,对应的参数为String.index。得创建对应的截取参数
// 字符串截取 let str = "abcdefghijklm" let startIndex = str.startIndex.advancedBy(3) //起始 let endIndex = str.endIndex.advancedBy(-2) //结束 var range = Range(start: startIndex,end: endIndex) //区域 var subString1 = str.substringToIndex(endIndex) var subString2 = str.substringFromIndex(startIndex) var subString3 = str.substringWithRange(range) print(subString1) print(subString2) print(subString3) //输出结果// abcdefghijk// defghijklm// defghijk
6、字符串比较
三种:字符串是否相等、前缀或后缀是否相等
//字符串比较 let str1 = "abcdefg.com" let str2 = "abdoil.com" if str1 == str2 { print("两者相等") } //判断前缀 if str1.hasPrefix("ab") { if str2.hasPrefix("ag") { print("两个前缀相等") } } //后缀 if str1.hasSuffix(".com") { if str2.hasSuffix(".com") { print("两个后缀相等") } }