swift String 的用法

1、创建空字符串

ios swift 字符串比较 swift 字符串长度_指定位置


注意: String 是一个结构体,如上图是xcode 关于String的空说明,一共有三种,如下图

ios swift 字符串比较 swift 字符串长度_String_02


以上是3种创建空字符串的方式。2、通过 Character 类型的数组 创建字符串 如下图

ios swift 字符串比较 swift 字符串长度_String_03


3、获取字符串长度

使用bookChi.countbookEng.characters.count 来获取字符串长度。

ios swift 字符串比较 swift 字符串长度_String_04


其中第二种方法 在swift 3.0 后已经被摒弃4、字符串遍历

swift 3.0之前

ios swift 字符串比较 swift 字符串长度_String_05


swift 3.0 之后,摒弃了characters这个方法,可以对字符串直接遍历

ios swift 字符串比较 swift 字符串长度_swift_06


5、字符串转化。

仅仅包含纯数字的字符串可以像基本数据类型直接转化。

转double 这里要注意 numNum 属于 double? 类型,在使用时需要 !操作

let numStr = "837474.5587899"
let numNum = Double(numStr)
print("str--\(numStr) --- double--\(numNum!)--")

转int 对于字符串中包含 小数点(.)的字符串, 在swift 中没有直接像OC那样的.length 操作。需要先将字符串转double 在将double转int。

如下:

ios swift 字符串比较 swift 字符串长度_ios swift 字符串比较_07


如果非想使用oc中的字符串方法,代码如下

ios swift 字符串比较 swift 字符串长度_swift_08


对于不包含小数点(.)的字符串,直接使用转化就可以(如下图)。注意如果对带小数点的字符串直接转化,会crash(大意是说对nil执行!操作)

ios swift 字符串比较 swift 字符串长度_字符串_09


6、一个字符串中是否包含另一个字符串

ios swift 字符串比较 swift 字符串长度_指定位置_10


7、字符串拼接

swift 中的拼接,非常简单 + 就可以 如图 : 将三个字符串拼接起来

ios swift 字符串比较 swift 字符串长度_指定位置_11


或者 使用 appendingFormat 方法 如下图

ios swift 字符串比较 swift 字符串长度_字符串_12

8、字符串截取

1️⃣、从第0位截到某位

ios swift 字符串比较 swift 字符串长度_swift_13


或者,使用新方法, 先获取到 String.index 在根据 它取出从第0位到第某位的子字符串

ios swift 字符串比较 swift 字符串长度_String_14


2️⃣、从最后一位向前截取到某位

ios swift 字符串比较 swift 字符串长度_ios swift 字符串比较_15



ios swift 字符串比较 swift 字符串长度_字符串_16


3️⃣、从指定位置截取到指定位置 根据swift特性, 严格意义上说是 从某个String.index 截取到 某个String.index

ios swift 字符串比较 swift 字符串长度_ios swift 字符串比较_17

9、字符串的插入与删除

字符串插入的操作如下

ios swift 字符串比较 swift 字符串长度_ios swift 字符串比较_18


你发现,并没有获取到预想的那样的结果,不要急, 字符串的insert的方法是一个没有返回值(返回值为void)得方法,因此,这里没有打印结果。调整一下

ios swift 字符串比较 swift 字符串长度_swift_19


这样就可以了

通过bookChi的值,我们发现,向字符串中插入一个字符串,实际上改变了原来字符串的值,而不是生成了一个新的字符串,因此,bookChi 需要用 var 来声明。

在指定位置添加指定字符串

ios swift 字符串比较 swift 字符串长度_ios swift 字符串比较_20

删除字符串 – 删除最后一个字符

ios swift 字符串比较 swift 字符串长度_字符串_21


删除 指定范围的字符串,原理与插入相同

准确理解 string.index 的功能和角色很重要