一、引言
swift中提供了string类型与characters类型来处理字符串和字符数据,swift中的string类型除了提供了许多方便开发者使用的方法外,还可以与foundation框架的nsstring类进行转换,使用起来十分方便。
二、string基础
在swift中,使用双引号来定义字符串,开发者可以通过如下代码来创建一个字符串常量:
let str = "hello, playground"
可以通过下面两种方式来创建空字符串:
let str1 = "" let str2 = string()
调用isempty方法可以判断某个字符串是否为空字符串,这个方法将返回一个bool值,可以直接用于if语句:
if str1.isempty { print("this string object is empty") }
不像objective-c有nsstring与nsmutablestring的区别,在swift中,如果需要创建可变的字符串,只需用变量来接收:
var str3 = "hello" str3 = " " "world"//str3 = hello world
string也可以使用插值的方法来构造新的字符串,使用\()的方式来将插值的表达式写在小括号内,示例如下:
let multiplier = 3 let message = "\(multiplier) times 2.5 is \(double(multiplier) * 2.5)"//3 times 2.5 is 7.5
获取字符串的长度使用如下代码:
str3.characters.count
swift中的string可以直接使用==运算符来进行比较,示例如下:
let comstr1 = "one two" let comstr2 = "one two" comstr1==comstr2//true
下面示例的代码,用来检验字符串是否包含前缀与后缀:
let tmp3 = "thank you" tmp3.hasprefix("thank")//true tmp3.hassuffix("you")//true
三、character的使用
character为swift中的字符类型,在for-in循环中,可以将字符串中所有的字符进行遍历:
for chara in str3.characters { print(chara) }
也可以创建单独的字符类型量值,示例如下:
let char1 = "" var cgar2 = "hs"
事实上,sting字符串也可以通过character字符数组进行初始化:
let chars:[character] = ["h","e","l","l","o"] let str4 = string(chars)
向字符串中追加字符使用如下方法:
var str5 = "" let ca:character = "a" str5.append(ca)
四、字符串中的特殊字符
字符串中的特殊字符主要指转义字符,swift中的转义字符列举如下:
"\0"//"" 空白符 "\"//""反斜杠符号 "\t"//" "制表符 "\n"//换行符 "\r"//回车符 "\'"//"'"单引号 """//"""双引号 "\u{24}"//"$"unicode字符
五、关于字符串下标
在swift中,字符串也可以通过下标的方式来访问其中字符,并且提供了相关方法来方便的移动下标,示例代码如下:
let tmp = "hello swift" //获取字符开始的下标值 0 let indexstart = tmp.startindex //获取某个下标后一个字符的下标 1 let next = indexstart.successor() //获取最后一个字符的下标值 注意有\0的存在 let indexend = tmp.endindex //获取某个下标前一个字符的下标 let pre = indexend.predecessor() //通过下标获取字符串中的字符 t var c = tmp[pre] //进行下标移动 o var c2 = tmp[indexstart.advancedby(4)] //通过遍历下标来遍历字符 h e l l o s w i f t for index in tmp.characters.indices { print("\(tmp[index]) ", terminator: "") }
六、在字符串中插入和移除字符
使用insert函数来向字符串中插入一个字符,示例如下:
var tmp2 = "hello" tmp2.insert("!", atindex: tmp2.endindex)
注意,上面示例代码中的insert函数只能用于插入一个字符,如果需要插入一组字符,需要使用如下方法:
tmp2.insertcontentsof(" swift".characters, at: tmp2.endindex)
使用removeatindex函数来移除字符串中的一个字符,示例如下:
tmp2.removeatindex(tmp2.endindex.predecessor())
如果要移除一组字符,主要通过range来实现,示例如下:
let range = tmp2.endindex.advancedby(-4)..