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