Swift 字符串

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类的实例来创建一个空字符串,如下所示。你还可以使用布尔属性 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属性上进行迭代,来访问String的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 Scalar表示。
9 + 连接两个字符串,或字符串和字符,或两个字符的运算符。
10 += 将字符串或字符追加到现有字符串中的运算符。
11 == 判断两个字符串是否相等的运算符。
12 < 运算符用于进行词汇比较,确定一个字符串是否小于另一个字符串。
13 startIndex 获取字符串起始索引位置的值。
14 endIndex 获取字符串结束索引位置的值。
15 Indices 按顺序访问索引,即逐个访问字符串的所有字符。
16 insert(“Value”, at: position) 在指定位置插入一个值。
17 remove(at: position) removeSubrange(range) 在指定位置删除一个值,或者从字符串中删除一系列值。
18 reversed() 返回字符串的反转

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程