Swift 4中的字符串是字符的有序集合,如" Hello,Learnfk!"。它们由Swift 4数据类型 String 字符串表示,而数据类型又是 Character 类型的值的集合。
您可以通过使用字符串文字或创建String字符串类的来创建字符串,如下所示:
//使用字符串字面量创建字符串 var stringA="Hello, Swift 4!" print( stringA ) //使用 String 实例创建字符串 var stringB=String("Hello, Swift 4!") print( stringB ) //多行字符串 let stringC=""" Hey this is a example of multiple Line string by LearnfkPoint """ print(stringC)
编译并执行上述代码后,将产生以下输出
Hello, Swift 4! Hello, Swift 4! Hey this is a example of multiple Line string by LearnfkPoint
您可以通过使用空字符串文字或创建String类的来创建空字符串,如下所示。您还可以使用布尔属性 isEmpty 检查字符串是否为空。
//使用字符串文字创建空字符串 var stringA="" if stringA.isEmpty { print( "stringA is empty" ) } else { print( "stringA is not empty" ) } //使用 String 实例创建空字符串 let stringB=String() if stringB.isEmpty { print( "stringB is empty" ) } else { print( "stringB is not empty" ) }
编译并执行上述代码后,将产生以下输出 -
stringA is empty stringB is empty
您可以通过使用 let 关键字将String字符串分配给变量来指定是修改字符串,如下所示-
//stringA 可以修改 var stringA="Hello, Swift 4!" stringA +="--Readers--" print( stringA ) //stringB 不能修改 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--"
字符串插值是通过将常量,变量,文字和表达式的值包含在字符串文字中来构造新的String字符串值的方法。
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="Learnfk!" var stringA=constA + constB print( stringA )
编译并执行上述代码后,将产生以下输出 -
Hello,Learnfk!
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, Learnfk!" if varA == varB { print( "\(varA) and\(varB) are equal" ) } else { print( "\(varA) and\(varB) are not equal" ) }
编译并执行上述代码后,将产生以下输出 -
Hello, Swift 4! and Hello, Learnfk! are not equal
字符串再次是swift 4中值的集合,因此我们可以使用循环在字符串上进行迭代。 -
for chars in "ThisString" { print(chars, terminator: " ") }
编译并执行上述代码后,将产生以下输出 -
T h i s S t r i n g
您可以通过迭代字符串的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支持与字符串有关的各种方法和运算符-
Sr.No | Functions/Operators & Purpose |
---|---|
1 | isEmpty 一个布尔值,它确定字符串是否为空。 |
2 | hasPrefix(prefix:String) 检查给定参数字符串是否作为字符串前缀的函数。 链接:https://www.learnfk.comhttps://www.learnfk.com/swift/swift-strings.html 来源:LearnFk无涯教程网 |
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() 返回字符串的反向 |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)