初识 Swift:字符串示例

使用 Playground 练习字符串,比较基础。

命名

文件 1-Values/2-Play with Values/B-Naming and Identifiers/Naming and Identifiers.playground 练习命名,命名简单,选择一个合适的名称却不简单,尤其在一些庞大的项目里,自己所知道的那些简单词汇可能都被用光了。也难怪 Swift 中好多方法名老长老长了。 在 Swift 中,可以用 emoji 作为名称,但不建议这么勇。

rust 复制代码
let 🐶 = 8
let 🐱 = 4
let 🐹 = 2
let 🐢 = 3
let 🐍 = 1
let 🐷 = 1
let 🐟 = 1

let totalNumberOfAnimals = 🐶 + 🐱 + 🐹 + 🐢 + 🐍 + 🐷 + 🐟
let totalNumberOfMammals = 🐶 + 🐱 + 🐹 + 🐷

字符串

字符串由多个字符组成,包括大小写字母、数字、标点符号、特殊字符,甚至空格、Tab 符。

  • 定义字符串
ini 复制代码
let favoriteBook = "Atomic Habits"

Unicode

Unicode 是一种字符编码标准,用于在计算机系统中表示和处理文本的字符。它支持包括拉丁字母、希腊字母、西里尔字母、中文、日文、韩文等在内的几乎所有已知的书写系统。为了实际存储和传输文本数据,Unicode 定义了不同的编码方案,最常见的是 UTF-8、UTF-16 和 UTF-32。这些编码方案将 Unicode 的代码点映射到不同长度的字节序列,以便在计算机中存储和处理文本。

  • UTF-8:使用变长字节编码,通常用一个字节表示 ASCII 字符,用多个字节表示其他字符。
  • UTF-16:使用固定长度的 16 位编码,用两个字节表示大部分常见字符,而一些罕见字符需要四个字节。
  • UTF-32:使用固定长度的 32 位编码,每个字符都占用四个字节。 在字符串中使用 Unicode 字符
bash 复制代码
let sayHiWithChinese = "你好"
let 英文问候 = "hi"
let fruits = "🍓🍏🍒🍐🍇🍉🥭"

控制台

控制台在开发过程中经常用于调试代码、输出日志信息和执行临时操作。通过控制台,我们可以查看和修改变量的值、调用函数和方法,以及输出调试信息和错误消息。它是我们与代码交互的一种方式,可以提供实时的反馈和调试功能。 可以通过这三种方式打开它。

  • Xcode 右下角的小图标按钮
  • 通过菜单 View > Debug Area > Show Debug Area
  • 快捷键 Shift-Command-Y (Shift-⌘-Y)

代码测试

bash 复制代码
print("Testing, one two three.")

可以看到,不仅仅在右侧的结果区有输出,同时在 Debug Area 也会输出这段字符串。

连接字符串

使用+号

ini 复制代码
let user = "Wang DaChui"
let fruit = "Apple"
// 注意 likes 两边的字符串
let whatPeopleLike = user + " likes " + fruit

将变量 name 和 age 嵌入到字符串

字符串插值(String Interpolation)是 Swift 中的一种特性,它允许你在定义字符串时包含占位符,稍后会用值来填充这些占位符。你可以使用字符串插值来创建包含变量、常量、表达式和字面量的字符串。插值表达式使用反斜杠和括号来包裹占位符,并在运行时将其替换为相应的值。

swift 复制代码
let name = "Alice"
let age = 25

// 使用字符串插值创建包含变量和字面量的字符串
let message = "My name is \(name) and I'm \(age) years old."
print(message)
// 输出:My name is Alice and I'm 25 years old.

转义

字符串需要双引号来包含,那如果你想定义一个包含引号的字符串怎么办? 转义引号:你可以在字符串中使用反斜杠(\)来转义引号,告诉编译器这些引号是字符串的一部分,而不是字符串的终止符号。

vbnet 复制代码
let str1 = "This is a string with \"double quotes\"."
print(str1)
// 输出:This is a string with "double quotes".

当你输入一个转义字符(escape character)后面跟着一个特殊处理的字符时,你正在创建一个转义序列(escape sequence)。 常见的转义序列包括:

  • ":双引号
  • ':单引号
  • \:反斜杠
  • \n:换行符
  • \t:制表符
  • \r:回车符
  • \u{}:Unicode 标量,你可以在花括号内放置一个 Unicode 编码来表示一个字符

示例

swift 复制代码
let str1 = "This is a string with \"double quotes\"."
let str2 = "This is a string with a new line.\nThis is the second line."
let str3 = "This is a string with a Unicode smiley face: \u{1F600}"
print(str1)
print(str2)
print(str3)

输出

vbnet 复制代码
This is a string with "double quotes".
This is a string with a new line.
This is the second line.
This is a string with a Unicode smiley face: 😀
相关推荐
HarderCoder4 小时前
Swift 中的不透明类型与装箱协议类型:概念、区别与实践
swift
HarderCoder4 小时前
Swift 泛型深度指南 ——从“交换两个值”到“通用容器”的代码复用之路
swift
东坡肘子4 小时前
惊险但幸运,两次!| 肘子的 Swift 周报 #0109
人工智能·swiftui·swift
胖虎15 小时前
Swift项目生成Framework流程以及与OC的区别
framework·swift·1024程序员节·swift framework
songgeb21 小时前
What Auto Layout Doesn’t Allow
swift
YGGP1 天前
【Swift】LeetCode 240.搜索二维矩阵 II
swift
YGGP2 天前
【Swift】LeetCode 73. 矩阵置零
swift
非专业程序员Ping3 天前
HarfBuzz 实战:五大核心API 实例详解【附iOS/Swift实战示例】
android·ios·swift
Swift社区4 天前
LeetCode 409 - 最长回文串 | Swift 实战题解
算法·leetcode·swift
YGGP6 天前
【Swift】LeetCode 54. 螺旋矩阵
swift