第 3.2.8 节:字符串处理操作

欢迎来到编程中最实用的部分之一!在计算机科学中,字符串(String)就是一系列字符的组合。它可以是一个单词、一句完整的句子,甚至像 "P@ssw0rd123" 这样的密码。由于我们使用的数据中,大部分(如用户名、地址和信息)都是文本格式,因此掌握如何处理字符串是一项至关重要的技能。

在本指南中,我们将介绍程序员用来「处理」字符串的工具。如果起初觉得有点抽象也不用担心,只要掌握当中的规律,就会发现它就像玩积木一样简单!

1. 测量字符串:长度 (Length)

长度 (Length) 操作可以告诉你字符串中到底有多少个字符。这包括字母、数字、标点符号,甚至包括空格

类比:将字符串想象成一串珠子项链。长度就是这条线上所有珠子的总数。

例子:
如果字符串是 "Computer Science"
它的长度16(15 个字母加上 1 个空格)。
小贴士:千万别忘了计算空格!它们也是字符的一种。

2. 寻找字符:位置 (Position)

位置 (Position) 操作可以告诉你某个特定字符在字符串中的具体位置。不过,在编程中有一条你必须铭记的黄金法则:

黄金法则:电脑是从 0 开始数的!

我们称之为「基于 0 的索引 (Zero-based indexing)」。第一个字符位于位置 0,第二个字符位于位置 1,以此类推。

记忆口诀:「从零开始,编程英雄!」

例子:
对于字符串 "PYTHON"
'P' 位于位置 0
'Y' 位于位置 1
'N' 位于位置 5

3. 截取片段:子字符串 (Substring)

子字符串 (Substring) 是长字符串中的一小部分。你可以通过告诉电脑从哪个位置开始,以及需要截取多少个字符,来「提取」文本片段。

类比:想象你有一条长长的果汁软糖条。如果你从中间撕下一小块,那一小块就是你的子字符串

步骤说明:
1. 确定起始位置(记得从 0 开始数!)。
2. 决定你想要「切出」多少个字符。

例子:
字符串:"Chocolate"
操作:截取从位置 0 开始,长度为 4 的子字符串
结果:"Choc"

4. 连接字符串:串联 (Concatenation)

串联 (Concatenation) 是一个听起来很高级的词,意思就是「将字符串连接在一起」。在许多编程语言中,我们使用 + 符号来执行此操作。

类比:就像将两节火车车厢连接起来,组成一列更长的火车。

例子:
字符串 A:"Hello"
字符串 B:"World"
串联 (A + B):"HelloWorld"
注意:如果你想要中间有空格,必须自己加上去:A + " " + B = "Hello World"。

快速回顾:

Length (长度):总共有多少个字符?
Position (位置):它在哪里?(从 0 开始!)
Substring (子字符串):文本的「切片」。
Concatenation (串联):将字符串黏在一起。

5. 字符与秘密代码

电脑实际上并不理解字母,它们只理解数字。键盘上的每个字符都有一个「秘密代码」(通常基于 ASCIIUnicode 编码)。

将字符转换为字符代码:
这会将字母转换为对应的数字。
例子:在 ASCII 中,'A' 变为 65

将字符代码转换为字符:
这会将数字转回字母。
例子:代码 97 会转为 'a'。

你知道吗?大写字母和小写字母有不同的代码!对电脑而言,'A' (65) 与 'a' (97) 是完全不同的。

6. 字符串转换操作 (Casting)

有时候,我们将数字存储为文本(字符串),但我们需要将其转换为真正的数字,以便进行数学计算。这称为转换 (Conversion)转型 (Casting)

课程要求你掌握这四种转换:
1. 字符串转整数 (String to Integer):"10" 变为 \( 10 \)。(现在你可以对它进行加减法了!)
2. 字符串转实数 (String to Real):"10.5" 变为 \( 10.5 \)。
3. 整数转字符串 (Integer to String):\( 50 \) 变为 "50"。(现在你可以将它与其他文本连接起来!)
4. 实数转字符串 (Real to String):\( 3.14 \) 变为 "3.14"

要避免的常见错误:尝试对字符串进行数学运算!如果你尝试在未进行转换的情况下计算 "10" + 5,电脑会感到困惑并显示错误。

章节总结:重点摘录

• 字符串是由一系列字符(包括空格)组成的。
索引 (Indexing) 永远从 0 开始。
• 使用 length 来检查密码长度是否足够。
• 使用 concatenation 来组建要显示给用户看的信息。
• 当你需要进行计算,或者要在文本与数字间切换时,请使用 conversion (casting)