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+”后面的空格。另外,如果你必须使用两个以上的常量/变量,它将变得不可读。

有一种更简单的方法可以使用字符串插值来显示消息,插值是将变量或常量的值包含在字符串文字中的过程。

应该插入字符串文字的变量或常量被包装在一对圆括号()中,以反斜杠(\)作为前缀。

例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!"))
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?