导言:什么是字符串?为什么它很重要?

未来的程序员们,大家好!欢迎来到字符串处理(String Handling)这一章节。别担心这个名字听起来复杂,其实你每天都在使用字符串!

在计算机科学中,字符串(String)就是一串字符序列。它可以是一个单词("Hello")、一句话("Computer Science is great!")、一个密码,或者是以文本形式存储的电话号码。任何非纯数学数字的内容,通常都被视为字符串。

本章将教你如何使用必备工具来操作(manipulate)截取(cut)连接(join)检查(check)这些字符序列。掌握字符串处理至关重要,因为几乎所有的程序都需要处理文本输入!


第一节:基础知识——长度与连接

1.1 理解字符串结构(索引)

想象一下,字符串就像一排排排列好的储物柜。每个字符都放在自己的柜子里,而这个柜子有一个特定的地址,称为索引(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() 来测量长度,并使用连接操作(如 + 或 &)将字符串组合在一起。


第二节:子串操作(截取与分割)

通常情况下,你只需要长字符串中的一小部分(例如日期中的年份,或者姓名的首字母)。我们使用子串(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(字符串, 起始位置, 字符数)

功能: 从指定位置开始,截取指定长度的字符串片段。

助记: MIDdle(中间)需要 3 个要素:字符串、从哪里开始(Start)、截取多少长度(Length)。

示例: 假设索引从 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 查找子串的位置

如果你有一长串文本,可能需要找到特定字符或单词开始的位置。这在检查电子邮箱地址是否包含“@”符号等任务中非常必要。

函数: POS()FIND()

功能: 返回搜索字符串在目标字符串中第一次出现时的起始索引(位置编号)。

  • 如果没找到,通常返回 0 或 -1(表示“不存在”)。

示例: 假设索引从 1 开始。
POS("exam@school.com", "@")
查找 '@'。从头开始计数:e(1), x(2), a(3), m(4), @(5)。
结果: 5

示例 2:
POS("computer", "cat")
"cat" 这个子串在 "computer" 中不存在。
结果: 0(或 -1)

3.2 类型转换(Casting)

在编程中,数字和字符串的存储方式不同。如果你从表单中读取数字 123,计算机通常会将其存储为字符串 "123"。你不能对字符串进行数学计算(如乘法)。

类型转换(Type Conversion)强制转换(Casting),就是将数据类型从一种形式改为另一种形式。

A) 字符串转数值(整型或实数)

函数: INT()VAL()

功能: 将包含数字的字符串转换为真实的数值,以便进行数学运算。

类比: 这就像把一张小票(文本)换成可以计算的现金(数值)。

示例:
AgeString = "17" (以文本存储)
AgeNumber = INT(AgeString) (转换为数值存储)
现在你可以计算 AgeNumber + 1,得到 18。

B) 数值转字符串

函数: STR()TO_STRING()

功能: 将真实的数值转换为字符串。如果你需要将数字与其他文本连接并显示出来,这一步必不可少。

示例:
Score = 95 (以数值存储)
STR(Score) + "%"
结果: "95%"

第三节重点总结

POS() 有助于定位文本中的具体数据。类型转换(INT/STR)对于混合处理字符串和数学逻辑至关重要。


第四节:检查字符(字符测试)

有时你需要验证用户输入。例如,如果用户输入了年龄,你需要检查他们输入的是否仅包含数字,而不是字母。

这些函数通常返回一个布尔值(Boolean)TRUEFALSE)。

4.1 IS_NUMERIC

功能: 检查字符串是否包含数字(0-9)。

  • 示例: IS_NUMERIC("2024") 返回 TRUE
  • 示例: IS_NUMERIC("A12") 返回 FALSE(因为含有 'A')。

4.2 IS_ALPHA (或 IS_ALPHABETIC)

功能: 检查字符串是否包含字母(A-Z 和 a-z)。

  • 示例: IS_ALPHA("Hello") 返回 TRUE
  • 示例: IS_ALPHA("Hello!") 返回 FALSE(因为含有 '!')。

4.3 IS_ALPHANUMERIC

功能: 检查字符串是否包含字母和数字(A-Z, a-z 和 0-9)。这常用于用户名或密码验证。

  • 示例: IS_ALPHANUMERIC("User123") 返回 TRUE
  • 示例: IS_ALPHANUMERIC("User 123") 返回 FALSE(因为含有空格)。

4.4 其他实用检查(视上下文而定)

  • IS_LOWER: 检查是否所有字符均为小写。
  • IS_UPPER: 检查是否所有字符均为大写。
👍 你知道吗?

字符测试是数据验证(Data Validation)的基础。如果你看到某个网站因密码包含特殊符号而拒绝了你的注册,那么它背后就是在运行这些字符测试函数,以核实你的输入是否符合规则!

第四节重点总结

字符测试函数允许程序通过检查字符串中存在的字符类型(字母、数字或两者皆有)来验证输入内容的正确性。


章节总结:必备字符串处理函数

在复习时,请随时查阅这份参考指南!

测量: LEN() (字符串有多长?)
连接: +& (字符串拼接)
提取: LEFT(), RIGHT(), MID() (截取字符串片段)
搜索: POS()FIND() (字符从哪里开始?)
转换: INT() / STR() (文本数字与数学数字互转)
验证: IS_NUMERIC(), IS_ALPHA() (检查内容格式)

你现在已经掌握了程序中处理文本数据所需的所有工具!干得漂亮!