Swift - 字符串
-
简述
Swift 4 中的字符串是字符的有序集合,例如“Hello, World!” 它们由 Swift 4 数据类型表示String,这又代表了一组值 Character 类型。 -
创建字符串
您可以通过使用字符串文字或创建 String 类的实例来创建字符串,如下所示 -// String creation using String literal var stringA = "Hello, Swift 4!" print( stringA ) // String creation using String instance var stringB = String("Hello, Swift 4!") print( stringB ) //Multiple line string let stringC = """ Hey this is a example of multiple Line string by tutorialsPoint """ print(stringC)
上述代码编译执行后,会产生如下结果Hello, Swift 4! Hello, Swift 4! Hey this is a example of multiple Line string by tutorialsPoint
-
空字符串
您可以通过使用空字符串文字或创建 String 类的实例来创建空字符串,如下所示。您还可以使用 Boolean 属性检查字符串是否为空isEmpty.// Empty string creation using String literal var stringA = "" if stringA.isEmpty { print( "stringA is empty" ) } else { print( "stringA is not empty" ) } // Empty string creation using String instance let stringB = String() if stringB.isEmpty { print( "stringB is empty" ) } else { print( "stringB is not empty" ) }
当上面的代码被编译和执行时,它会产生以下结果 -stringA is empty stringB is empty
-
字符串常量
您可以指定您的字符串是否可以通过将其分配给变量来修改(或变异),或者通过使用将其分配给常量来指定为常量 let 关键字如下所示 -// stringA can be modified var stringA = "Hello, Swift 4!" stringA + = "--Readers--" print( stringA ) // stringB can not be modified let stringB = String("Hello, Swift 4!") stringB + = "--Readers--" print( stringB )
当上面的代码被编译和执行时,它会产生以下结果 -Playground execution failed: error: <EXPR>:10:1: error: 'String' is not convertible to '@lvalue UInt8' stringB + = "--Readers--"
-
字符串插值
字符串插值是一种通过将常量、变量、文字和表达式的值包含在字符串文字中来构造新字符串值的方法。您插入到字符串文字中的每个项目(变量或常量)都包含在一对括号中,并以反斜杠为前缀。这是一个简单的例子 -var varA = 20 let constA = 100 var varC:Float = 20.0 var stringA = "\(varA) times \(constA) is equal to \(varC * 100)" print( stringA )
当上面的代码被编译和执行时,它会产生以下结果 -20 times 100 is equal to 2000.0
-
字符串连接
您可以使用 + 运算符连接两个字符串、一个字符串和一个字符或两个字符。这是一个简单的例子 -let constA = "Hello," let constB = "World!" var stringA = constA + constB print( stringA )
当上面的代码被编译和执行时,它会产生以下结果 -Hello,World!
-
字符串长度
Swift 4 字符串没有 length属性,但您可以使用全局 count() 函数来计算字符串中的字符数。这是一个简单的例子 -var varA = "Hello, Swift 4!" print( "\(varA), length is \((varA.count))" )
当上面的代码被编译和执行时,它会产生以下结果 -Hello, Swift 4!, length is 15
-
字符串比较
您可以使用 == 运算符来比较两个字符串变量或常量。这是一个简单的例子 -var varA = "Hello, Swift 4!" var varB = "Hello, World!" if varA == varB { print( "\(varA) and \(varB) are equal" ) } else { print( "\(varA) and \(varB) are not equal" ) }
当上面的代码被编译和执行时,它会产生以下结果 -Hello, Swift 4! and Hello, World! are not equal
-
字符串迭代
在 swift 4 中,字符串也是值的集合,因此我们可以使用循环遍历字符串。-for chars in "ThisString" { print(chars, terminator: " ") }
当上面的代码被编译和执行时,它会产生以下结果 -T h i s S t r i n g
-
Unicode 字符串
您可以通过迭代字符串的 utf8 和 utf16 属性来访问字符串的 UTF-8 和 UTF-16 表示,如下例所示 -var unicodeString = "Dog???" print("UTF-8 Codes: ") for code in unicodeString.utf8 { print("\(code) ") } print("\n") print("UTF-16 Codes: ") for code in unicodeString.utf16 { print("\(code) ") }
当上面的代码被编译和执行时,它会产生以下结果 -UTF-8 Codes: 68 111 103 63 63 63 UTF-16 Codes: 68 111 103 63 63 63
-
字符串函数和运算符
Swift 4 支持多种与字符串相关的方法和运算符 -序号 功能/运算符和目的 1 isEmpty一个布尔值,用于确定字符串是否为空。2 hasPrefix(prefix: String)用于检查给定参数字符串是否作为字符串前缀存在的函数。3 hasSuffix(suffix: String)用于检查给定参数字符串是否作为字符串后缀存在的函数。4 toInt()将数字字符串值转换为整数的函数。5 count()用于计算字符串中字符数的全局函数。6 utf8返回字符串的 UTF-8 表示的属性。7 utf16返回字符串的 UTF-16 表示的属性。8 unicodeScalars返回字符串的 Unicode 标量表示的属性。9 +连接两个字符串、一个字符串和一个字符或两个字符的运算符。10 +=将字符串或字符附加到现有字符串的运算符。11 ==运算符来确定两个字符串的相等性。12 <运算符执行字典比较以确定一个字符串的计算结果是否小于另一个。13 startIndex获取字符串起始索引处的值。14 endIndex获取字符串结束索引处的值。15 Indices一一访问索引。即字符串的所有字符一个一个。16 insert("Value", at: position)在一个位置插入一个值。17 remove(at: position)removeSubrange(range)删除某个位置的值,或从字符串中删除一系列值。18 reversed()返回字符串的反转