引言:什么是字符串(String)?为什么它很重要?
各位未来的程序员,大家好!欢迎来到字符串处理(String Handling)章节。别担心这个名字听起来很复杂,其实你们每天都在使用字符串!
在计算机科学中,字符串(String)就是一串字符序列。它可以是一个词("Hello")、一个句子("Computer Science is great!")、一个密码,甚至是存储为文本的电话号码。任何非纯数学数值的数据,通常都会被视为字符串处理。
本章将教你各种实用工具,让你学会如何操作、切割、连接、转换和检查这些字符序列。掌握字符串处理至关重要,因为几乎所有的程序都需要处理文本输入!
第一部分:基础知识——长度与连接
1.1 理解字符串结构(索引 Indexing)
试想象字符串就像一排置物柜。每个字符都存放在自己的柜子里,而每个柜子都有一个特定的地址,称为索引(Index)。
• 索引就是字符在字符串中的位置编号。
• 重要提示:根据编程语言的不同,索引通常由位置 0(零)或位置 1(一)开始。应考时,请务必留意题目给出的背景,但逻辑原理是一样的。
示例字符串:"APPLE"
如果索引由 1 开始:
P1: A, P2: P, P3: P, P4: L, P5: E
1.2 找出字符串的长度
处理字符串的第一步,就是知道它的长度。
函数: LENGTH() 或 LEN()
功能: 计算字符串中的总字符数,包括空格、标点符号和特殊字符。
示例:
LEN("AQA Exam")
计算字符:A, Q, A, (空格), E, x, a, m。
结果: 8
1.3 连接字符串(拼接 Concatenation)
拼接(Concatenation)是指将两个或多个字符串首尾相接,组合成一个更长的字符串的过程。
使用的运算符: 通常是加号(+)或连字号(&)。
比喻: 拼接就像把两节火车车厢连接在一起。
示例:
设 FirstName = "Alex"
设 LastName = "Smith"
FullName = FirstName + " " + LastName
结果: "Alex Smith"
⚠ 常见错误警示!
如果你拼接两个包含数字的字符串(例如 "2" 和 "5"),结果会是 "25",而不是数学相加后的 7。拼接只会把它们当作文本合起来!
第一部分重点总结
我们使用 LEN() 来测量长度,并使用拼接(Concatenation)(如 + 或 &)来连接字符串。
第二部分:子字符串操作(切割与截取)
很多时候,你只需要长字符串中的一小部分(例如日期中的年份,或是姓名的首字母)。我们使用子字符串(Substring)函数来达成目的。
子字符串(Substring)就是较长字符串中的一部分。
2.1 从左侧提取
函数: LEFT(字符串, 字符数量)
功能: 从字符串的最开头(左侧)开始,取出指定数量的字符。
示例:
LEFT("Programmer", 4)
从 'P' 开始取出 4 个字符(P, r, o, g)。
结果: "Prog"
2.2 从右侧提取
函数: RIGHT(字符串, 字符数量)
功能: 从字符串的最结尾(右侧)开始,取出指定数量的字符。
示例:
RIGHT("Computer Science", 7)
从右向左数 7 个字符:S, c, i, e, n, c, e。
结果: "Science"
2.3 从中间提取
函数: MID(字符串, 起始位置, 字符数量) 或 SUBSTRING(字符串, 起始位置, 字符数量)
功能: 从指定的起始位置开始,提取指定长度的部分字符串。
示例: 假设索引由 1 开始。
字符串:"DATA2024FILE"
MID("DATA2024FILE", 5, 4)
1. 起始位置 (5): 第 5 个字符是 '2'。
2. 字符数量 (4): 从 '2' 开始取 4 个字符 (2, 0, 2, 4)。
结果: "2024"
🔍 快速复习:子字符串参数
LEFT: 字符串, N (从头取几个)
RIGHT: 字符串, N (从尾取几个)
MID: 字符串, 起始位置, 长度 (从该位置起取几个)
第二部分重点总结
子字符串函数(LEFT, RIGHT, MID)让我们能利用索引和长度参数,精确地提取字符串的特定部分。
第三部分:定位信息与类型转换
3.1 寻找子字符串的位置
当你面对一段字符串时,可能需要找出某个特定字符或序列从哪里开始。这在检查电子邮件地址是否包含 "@" 符号这类任务中非常重要。
函数: POSITION() 或 POS() / FIND()
功能: 返回搜索字符或子字符串在目标字符串中第一次出现的起始索引(位置编号)。
示例: 假设索引由 1 开始。
POS("exam@school.com", "@")
从头计算:e(1), x(2), a(3), m(4), @(5)。
结果: 5
3.2 字符串转换操作(类型转换 Casting)
在编程中,数值和字符串的存储方式不同。你无法对文本进行数学运算。OxfordAQA 要求你掌握四种关键转换:
A) 字符串转整数
函数: STRING_TO_INT() 或 INT()
功能: 将包含整数的字符串转换为整数。
示例: INT("42") 求值为整数值 42。
B) 字符串转实数
函数: STRING_TO_REAL() 或 REAL() / FLOAT()
功能: 将包含小数的字符串转换为实数/浮点数。
示例: REAL("3.14") 求值为实数值 3.14。
C) 整数转字符串
函数: INT_TO_STRING() 或 STR()
功能: 将整数转换为字符串形式,以便与文本进行拼接。
示例: STR(95) + "%" 求值为 "95%"。
D) 实数转字符串
函数: REAL_TO_STRING() 或 STR()
功能: 将实数(小数)转换为字符串。
示例: "Total: $" + STR(19.99) 求值为 "Total: $19.99"。
第四部分:字符编码转换
计算机使用 ASCII 或 Unicode 等字符集将每个字符存储为数字编码。你需要知道如何在字符与其底层字符编码之间进行转换。
4.1 字符转字符编码
函数: ASC()、CHAR_TO_CODE() 或 ord()
功能: 接收单个字符并返回其数字字符编码(例如其 ASCII 整数值)。
示例:
在 ASCII 中,大写字母 'A' 由数字 65 表示。
ASC("A") 求值为 65。
ASC("a") 求值为 97。
4.2 字符编码转字符
函数: CHR()、CODE_TO_CHAR() 或 chr()
功能: 接收数字字符编码并返回对应的字符。
示例:
CHR(65) 求值为 "A"。
CHR(66) 求值为 "B"。
👍 字符编码小贴士
在字符与字符编码之间进行转换,在密码学(如凯撒密码 Caesar cipher)以及比较字母顺序时特别有用!
章节总结:重要的字符串处理函数
在复习时,请备好这份速查指南!
• 长度: LEN(str) / LENGTH(str) —— 返回字符数量。
• 位置: POS(str, substr) —— 返回子字符串的索引位置。
• 子字符串: LEFT(str, n)、RIGHT(str, n)、MID(str, start, len) —— 提取文本片段。
• 拼接: + 或 & —— 将字符串首尾相接。
• 字符转编码: ASC(char) / CHAR_TO_CODE(char) —— 将字符转换为其整数编码(例如 'A' → 65)。
• 编码转字符: CHR(code) / CODE_TO_CHAR(code) —— 将字符编码转换为字符(例如 65 → 'A')。
• 字符串转换: INT()、REAL()、STR() —— 在字符串、整数与实数之间进行转换。
你现在已经掌握了 OxfordAQA IGCSE 计算机科学所需的全部字符串处理操作!