swift字符和字符串使用及其相关操作详解 – Swift最新教程

上一章Swift教程请查看:swift optional可选类型
在本教程中,你将了解字符和字符串在Swift中的用法,你还将了解可以对字符串和字符执行的不同操作。
什么是字符?字符是单个符号(字母、数字等),swift中的字符为字符类型,声明如下:

let someCharacter:Character

如何在swift中声明和分配一个字符?你可以使用双引号“”在与字符串相同的字符类型中赋值,但是在引号“”中应该只包含一个字符。
如果需要包含多个字符,则需要定义字符串而不是字符。
例1:声明和分配一个字符
let someCharacter:Character = “H” let specialCharacter:Character = “@” print(someCharacter) print(specialCharacter)

例2:分配多个字符(错误)
但是如果你试图在字符中分配两个符号
/* 这将给出一个错误 将类型更改为String将可以修复它。 */ let failableCharacter:Character = "H@" print(failableCharacter)

当你尝试运行上述代码时,你将得到一个错误:
Cannot convert value of type String to Character.

使用unicode和转义序列创建字符你还可以创建特殊类型的字符,例如表情符号,可以使用转义序列\u{n}创建unicode (unicode编码点,n是十六进制)。
示例3:创建unicode字符
let heartShape:Character = "\u{2665}" print(heartShape)

在上面的例子中,从代码U+2665创建了一个心形字符。虽然双引号中包含了\u{2665},但是编译器并不把它当作字符串,因为我们使用了转义序列\u{n}。当包含在文本中时,转义序列不表示自身。
什么是字符串?字符串就是字符的集合,Swift中的字符串为字符串类型,声明如下:
let someString:String

如何在Swift中声明和分配字符串?可以使用字符串文字在字符串类型中赋值,字符串文字是用双引号“”包围的字符集合。
例4:声明和分配一个字符串
let someString:String = "Hello, world!" let someMessage = "I love Swift." print(someString) print(someMessage)

字符串操作有一些建在字符串处理函数和属性最常用操作,例如:加入字符串,将其更改为大写或利用它。让我们来了解一些常用的操作如下:
字符串比较你可以检查两个字符串是否相等或不使用比较运算符(= =),操作符返回返回true,如果这两个字符串是相等的,否则返回false。
示例5:字符串比较
let someString = "Hello, world!" let someMessage = "I love Swift." let someAnotherMessage = "Hello, world!" print(someString == someMessage) print(someString == someAnotherMessage)

字符串连接可以使用加法运算符(+)或复合赋值运算符(+=)将两个不同的字符串值相加。还可以使用append方法在字符串中追加字符/字符串。
例6:Swift中的字符串连接
let helloStr = "Hello, " let worldStr = "World" var result = helloStr + worldStr print(result) result.append("!") print(result)

在上面的程序中,我们使用+运算符添加helloStr和worldStr来创建一个字符串结果。因此,print(result)输出Hello, World。
你还可以使用append方法附加任何字符或字符串,append(“ !” )追加一个!字符串末尾的字符,那么,print(result)输出Hello, World!在屏幕上。
使用高级赋值运算符的字符串连接
我们还可以使用高级赋值运算符(+=)来追加字符串。
例7:使用+=操作符的字符串连接
var helloStr = "Hello, " let worldStr = "World!" helloStr +=worldStr print(helloStr)

注意这里使用的是var而不是let,如果你已经使用let定义了helloStr常量,那么你以后就不能使用+=操作符更改它并最终得到一个错误,你需要定义一个变量helloStr。
字符串插值这是一个简单的计算字符串文字的过程,它由变量、常量等组成,假设你将玩家的名字和分数存储在两个常量中:
let playerName = "Van" let playerScore = 99

现在你需要向玩家显示一条消息,这里,你需要一种方法来使用单个字符串中的常量值。
这可以实现使用字符串连接为:
let congratsMessage = "AA+ " + playerName + "!. 最高分 " + playerScore + "." print(congratsMessage)

但是,你可以看到这很快就会变得混乱,你必须注意“AA+”后面的空格。另外,如果你必须使用两个以上的常量/变量,它将变得不可读。
【swift字符和字符串使用及其相关操作详解 – Swift最新教程】有一种更简单的方法可以使用字符串插值来显示消息,插值是将变量或常量的值包含在字符串文字中的过程。
应该插入字符串文字的变量或常量被包装在一对圆括号()中,以反斜杠(\)作为前缀。
例8:Swift中的字符串插值
let playerName = "Van" let playerScore = 99 let congratsMessage = "A+ \(playerName)!. 最高分 \(playerScore)." print(congratsMessage)

一些有用的内置字符串函数和变量:1. isEmpty
此函数确定字符串是否为空,如果字符串为空,则返回true,否则返回false。
例9:isEmpty
var emptyString = "" print(emptyString.isEmpty)

2. capitalized
此属性用于将字符串中的每个单词首字母大写。
例10:capitalized
let someString = "hello, world!" print(someString.capitalized)

3. 大写和小写uppercased和lowercased
大写函数将字符串转换为大写字母,小写函数将字符串转换为小写字母。
示例11:uppercased()和lowercased()
let someString = "Hello, World!" print(someString.uppercased()) print(someString.lowercased())

4. 长度/count
此属性用于计算字符串中的字符总数。
例12:count
let someString = "Hello, World!" print(someString.count)

5. hasPrefix
此函数确定字符串是否以某些字符开头并返回一个布尔值。如果字符串前缀与提供的值匹配,则返回true,否则返回false。
例13:hasPrefix ()
let someString = "Hello, World!" print(someString.hasPrefix("Hell")) print(someString.hasPrefix("hell"))

6. hasSuffix
此函数确定字符串是否以特定字符结束并返回一个布尔值。如果字符串后缀与提供的值匹配,则返回true,否则返回false。
例14:hasSuffix ()
print(someString.hasSuffix("rld!")) print(someString.hasSuffix("Rld!"))

    推荐阅读