Swift 字符串
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 JavaTpoint")
print( stringB )
//Multiple line string
let stringC = """
This is an
example of multiple line
string by JavaTpoint
"""
print(stringC)
输出:
Hello world!
This is JavaTpoint
This is an
example of multiple line
string by JavaTpoint
空字符串
要创建空字符串,可以使用空字符串字面量或创建string类的实例。
要检查字符串是否为空,可以使用布尔属性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 = "JavaTpoint"
var stringA = constA + constB
print( stringA )
输出:
Hello JavaTpoint
字符串插值
字符串插值用于通过混合常量、变量、字面量和表达式的值,并将它们包含在一个字符串字面量中来构造一个新的字符串值。插入到字符串字面量中的变量和常量的值需要用一对括号包裹起来,并在前面加上一个反斜杠。
示例
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 JavaTpoint"
print( "\(varA), string length is \((varA.count))" )
输出:
Hello JavaTpoint, string length is 16
字符串比较
使用 ==
运算符来比较两个字符串变量或常量。
示例
var varA = "Hello, JavaTpoint"
var varB = "Hello, World!"
if varA == varB {
print( "\(varA) and \(varB) are equal" )
} else {
print( "\(varA) and \(varB) are not equal" )
}
输出结果:
Hello, JavaTpoint and Hello, World! are not equal
字符串迭代
在Swift 4中,字符串是值的集合,因此我们可以使用循环迭代字符串:
示例:
for chars in "WelcometoJavaTpoint" {
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 = "JavaTpoint"
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 String函数和运算符
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 Scalar表示。 |
9) | + |
这是一个操作符,用于连接两个字符串,或一个字符串和一个字符,或两个字符。 |
10) | += |
它是一个操作符,用于将字符串或字符添加到现有字符串中。 |
11) | == |
这是一个用来确定两个字符串是否相等的运算符。 |
12) | < |
这是一个用来进行词典比较,确定一个字符串是否小于另一个字符串的运算符。 |
13) | startIndex | 用于获取字符串的起始索引处的值。 |
14) | endIndex | 用于获取字符串的结束索引处的值。 |
15) | Indices | 用于逐个访问索引,即逐个访问字符串的所有字符。 |
16) | insert(“Value”, at: position) | 用于在指定位置插入一个值。 |
17) | remove(at:位置) removeSubrange(范围) | 用于从位置移除一个值,或者从字符串中移除一段范围的值。 |
18) | reversed() | 用于返回字符串的反转。 |