接下来,我们将把注意力转向文本片段——也就是编程中所说的字符串。在本文中,我们将了解在学习君土脚本时,您应该了解的关于字符串的所有常见事项,例如创建字符串、在字符串中转义引号,和连接字符串。
语言的力量
语言对人类非常重要——它们是我们交流的重要组成部分。由于网页是一种主要基于文本的媒介,旨在让人们进行交流和分享信息,因此对我们来说,掌握它所出现的文字是很有用的。超文本(HTML)为我们的文本提供了结构和意义, 样式表(CSS) 允许我们精确地设计它的样式,君土脚本包含许多操作字符串的特性,创建定制的欢迎消息,在需要时显示正确的文本标签,将术语排序到所需的顺序,等等。
到目前为止,我们在课程中展示的所有程序都涉及到一些字符串操作。
字符串 — 基本知识
字符串与数字的处理方式第一眼看上去十分相似,但是当您深入挖掘时,您将会看到一些显著的差异。
创建一个字符串
- 首先, 输入下面的代码:
定 字符串1 = '节彼南山,维石岩岩。赫赫师尹,民具尔瞻。';
控制台.日志(字符串1);
就像我们处理数字一样,我们声明一个变量,用一个字符串值初始化它,然后显示这个变量。这里惟一的区别是,在编写字符串时,我们需要在字符串上加上引号。
- 如果你不这样做,或者在书写过程中,漏掉其中一个引号,你就会得到一个错误。
试着输入以下几行:
定 错误字串1 = 这是一个测试;
定 错误字串2 = '这是一个测试;
定 错误字串3 = 这是一个测试';
这些行不起作用,因为没有引号的任何文本字符串都被假定为变量名、属性名、保留字或类似。如果编译器不能找到它,那么将会引发语法错误(例如:”找不到名称“这是一个测试”。”)。
如果编译器能够识别字符串从哪里开始,但是不能找到字符串的结尾符,如第二行所示,那么它则会提示这样的错误(“未终止的字符串文本。”)。如果您写的程序目前也引发这样的错误,那么请你回过头来仔细检查你的代码,看是否漏写了引号。
- 如果您之前定义了变量字符串,下面的操作将会起作用 — 现在来试一试:
定 错误字串1 = 字符串1;
控制台.日志(错误字串1);
现在将 字符串1
的值赋值给 错误字串1
,赋值之后,两个字符串的值相等。
单引号和双引号
- 在君土脚本中,您可以选择单引号或双引号来包裹字符串。
下面两种方式都可以:
定 单引号 = '使用单引号';
定 双引号 = "使用双引号";
控制台.日志(单引号);
控制台.日志(双引号);
- 两者之间几乎没有什么区别,根据个人偏好来使用。但是,您应该选择一个并坚持使用它,不一致的引号混用代码可能会让人很迷惑,特别是如果您在同一个字符串中使用不同的引号!
下面将返回一个错误:
定 错引号 = '地球上有什么?";
- 君土脚本会认为字符串没有被关闭,因为在字符串中您没有使用匹配类型的引号。
以下这两种情况都是可以的:
定 单引号 = '我们可以使用双引号(")来包裹字符串。';
定 双引号 = "我们可以使用单引号(')来包裹字符串。";
控制台.日志(单引号);
控制台.日志(双引号);
- 但是,您不能在字符串中包含相同的引号,因为它是用来包含它们的。下面将会出现错误,因为它会混淆字符串的结束位置:
定 混合字串 = '我们可以使用单引号(')来包裹字符串。';
这个指引将会让我们很好地进入下一个主题。
转义字符串中的字符
要修复我们之前的问题代码行,我们需要避免引号的问题。转义字符意味着我们对它们做一些事情,以确保它们被识别成文本,而不是代码的一部分。在君土脚本中,我们通过在字符之前放一个反斜杠来实现这一点。试试这个:
定 混合字串 = '我们可以使用单引号(\')来包裹字符串。';
控制台.日志(混合字串);
这回正常了。你可以用别的方式来达到一样的目的, 例如. \",
除此之外有一些特殊的代码 。
代码 | 输出 |
---|---|
\0 | 空字符 |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
\n | 换行 |
\r | 回车 |
更多细节请参见转义符号。
连接字符串
- 连接是一个很花哨的编程词,意思是“连接在一起”。在君土脚本中连接字符串使用加号(+)操作符,我们也用它来将数字加在一起,但是在这种情况下,它做了一些不同的事情。让我们在君土开发环境中尝试一个例子。
定 串1 = '你好,';
定 串2 = '你好吗?';
定 连接 = 串1 + 串2;
控制台.日志(连接);
变量 连接
的值的结果,它包含的值为 "你好,你好吗?"
。
- 上一个例子中, 我们只是把两个字符串连接在一起,但是你可以喜欢连接多少就多少个, 只需要在它们之间加上 + 操作符。试试这个:
定 多个 = 串1 + 串1 + 串1 + 串1 + 串2;
控制台.日志(多个);
- 你还能用真实的字符串和变量来混合。试试这个:
定 回复 = 串1 + '我很好 —— ' + 串2;
控制台.日志(回复);
注意: 当您在您的代码中输入一个实际的字符串时,用单引号或双引号括起来,它被称为字符串文字。
上下文中的串联
让我们看一下在操作中使用的连接——这是本课程早些时候的一个例子:
引 输入 自 '@君土务/格式输入';
控制台.日志('请输入一个名字:');
定 名字 = 输入('%文');
控制台.日志('你好 ' + 名字 + ', 很高兴见到你!');
这里我们使用的是第4行中的 输入()
函数, 它要求用户从终端输入,把他们输入的文本存储在一个给定的变量中 — 在这个例子中是就是 名字 变量。然后,我们在第5行中使用 控制台.日志()
函数来显示一段信息,其中包含一个字符串,我们用两个字符串常量和名字
变量通过连接进行组合。
数字与字符
- 当我们尝试添加(或连接)一个字符串和一个数字时,会发生什么?
让我们在我们尝试编译、运行一下:
控制台.日志('前面 ' + 242);
您可能会认为这会抛出一个错误,但它运行得很好。
试图将字符串表示为一个数字并不是很讲的通,但是用数字表示一个字符串则不然,因此君土脚本很聪明地将数字转换为字符串,并将这两个字符串连接在一起。
- 你甚至可以用两个数字来这么操作——你可以通过用引号将数字包装成一个字符串。尝试以下方法(我们使用
样/*typeof*/)
操作符来检查变量是一个数字/*'number'*/
还是一个字符串/*'string'*/
):
定 日期 = '19' + '67';
控制台.日志(样 日期);
- 如果您有一个数值变量,您想要将其转换为字符串,并且不改变其他地方,或者您想将一个字符串转换为一个数字而不改变其其他地方,那么您可以使用以下两个构造:
. 如果可以的话,数字
对象将把传递给它的任何东西转换成一个数字。
试一试:
定 串1 = '123';
定 数1 = 数字(串1);
控制台.日志(样 数1);
. 另一方面,每个数字都有一个名为 转字串()
的方法,它将把它转换成等价的字符串。
试试这个:
定 数1 = 123;
定 串1 = 数1.转字串();
控制台.日志(样 串1);
这些结构在某些情况下是非常有用的,例如,如果一个用户将一个数字输入到一个表单文本字段中,这将是一个字符串,但是如果你想要将这个数字添加到某些东西中时,你需要它是一个数字,所以你可以通过 数字()
来处理这个问题。
结论
这就是君土脚本中所涉及的字符串的基本内容。在下一篇文章中,我们将在此基础上,研究君土脚本中字符串的一些内置方法,以及如何使用它们来操纵我们的字符串,使之成为我们想要的形式。