本文概述
Swift 4字符串是有序字符集合, 例如” Hello, World!”。并且它们由Swift 4数据类型String表示, 该数据类型又表示Character类型的值的集合。
如何创建一个字符串?
可以通过使用字符串文字或创建String类的实例来创建字符串。
请参阅以下示例:
// String creation using String literal
var stringA = "Hello world!"
print( stringA )
// String creation using String instance
var stringB = String("This is srcmini")
print( stringB )
//Multiple line string
let stringC = """
This is an
example of multiple line
string by srcmini
"""
print(stringC)
输出
Hello world!
This is srcmini
This is an
example of multiple line
string by srcmini
空字符串
要创建空字符串, 可以使用空字符串文字或创建字符串类的实例。
要检查字符串是否为空, 可以使用布尔属性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
字符串操作
我们可以对Swift字符串进行很多操作。
字符串串联
+运算符用于在Swift中连接两个字符串或一个字符串和一个字符, 或两个字符。
例:
let constA = "Hello "
let constB = "srcmini"
var stringA = constA + constB
print( stringA )
输出
Hello srcmini
字符串插值
字符串插值用于通过混合常量, 变量, 文字和表达式的值并将其包含在字符串文字中来构造新的字符串值。插入字符串文字中的变量和常量的值用一对括号括起来, 并以反斜杠为前缀。
例:
var varA = 10
let constA = 1000
var varC:Float = 10.0
var stringA = "\(varA) times \(constA) is equal to \(varC * 1000)"
print( stringA
输出
10 times 1000 is equal to 10000.0
弦长
字符串4不支持length属性, 但是我们可以使用全局count()函数来计算字符串中的字符数。
例:
var varA = "Hello srcmini"
print( "\(varA), string length is \((varA.count))" )
输出
Hello srcmini, string length is 16
字符串比较
==运算符用于比较两个字符串变量或常量。
例:
var varA = "Hello, srcmini"
var varB = "Hello, World!"
if varA == varB {
print( "\(varA) and \(varB) are equal" )
} else {
print( "\(varA) and \(varB) are not equal" )
}
输出
Hello, srcmini and Hello, World! are not equal
字符串迭代
在Swift 4中, 字符串是值的集合, 因此我们可以使用循环对字符串进行迭代:
例:
for chars in "Welcometosrcmini" {
print(chars, terminator: " ")
}
输出
W e l c o m e t o J a v a T p o i n t
Unicode字符串的迭代
我们可以通过utf8和utf16属性访问Unicode字符串的UTF-8和UTF-16表示形式。
例:
var unicodeString = "srcmini"
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:
74
97
118
97
84
112
111
105
110
116
UTF-16 Codes:
74
97
118
97
84
112
111
105
110
116
Swift 4字符串函数和运算符
与Swift 4中的String相关的函数和运算符的列表:
Index | Functions/Operators | Usage |
---|---|---|
1) | isEmpty | 用于检查字符串是否为空。它指定一个布尔值。 |
2) | hasPrefix(前缀:字符串) | 检查给定参数字符串是否作为字符串前缀的功能。 |
3) | hasSuffix(后缀:字符串) | 检查给定参数字符串是否作为字符串的后缀存在的功能。 |
4) | toInt() | 它是将数字String值转换为Integer的函数。 |
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() | 它用于返回字符串的反向。 |