1. 主页
  2. 文档
  3. 学习君土脚本
  4. 君土脚本 第一步
  5. 文本处理 — 君土脚本中的字符串

文本处理 — 君土脚本中的字符串

接下来,我们将把注意力转向文本片段——也就是编程中所说的字符串。在本文中,我们将了解在学习君土脚本时,您应该了解的关于字符串的所有常见事项,例如创建字符串、在字符串中转义引号,和连接字符串。

语言的力量

语言对人类非常重要——它们是我们交流的重要组成部分。由于网页是一种主要基于文本的媒介,旨在让人们进行交流和分享信息,因此对我们来说,掌握它所出现的文字是很有用的。超文本(HTML)为我们的文本提供了结构和意义, 样式表(CSS) 允许我们精确地设计它的样式,君土脚本包含许多操作字符串的特性,创建定制的欢迎消息,在需要时显示正确的文本标签,将术语排序到所需的顺序,等等。

到目前为止,我们在课程中展示的所有程序都涉及到一些字符串操作。

字符串 — 基本知识

字符串与数字的处理方式第一眼看上去十分相似,但是当您深入挖掘时,您将会看到一些显著的差异。

创建一个字符串

  1. 首先, 输入下面的代码:
定 字符串1 = '节彼南山,维石岩岩。赫赫师尹,民具尔瞻。'; 
控制台.日志(字符串1);

就像我们处理数字一样,我们声明一个变量,用一个字符串值初始化它,然后显示这个变量。这里惟一的区别是,在编写字符串时,我们需要在字符串上加上引号。

  1. 如果你不这样做,或者在书写过程中,漏掉其中一个引号,你就会得到一个错误。
    试着输入以下几行:
定 错误字串1 = 这是一个测试; 
定 错误字串2 = '这是一个测试; 
定 错误字串3 = 这是一个测试';

这些行不起作用,因为没有引号的任何文本字符串都被假定为变量名、属性名、保留字或类似。如果编译器不能找到它,那么将会引发语法错误(例如:”找不到名称“这是一个测试”。”)。
如果编译器能够识别字符串从哪里开始,但是不能找到字符串的结尾符,如第二行所示,那么它则会提示这样的错误(“未终止的字符串文本。”)。如果您写的程序目前也引发这样的错误,那么请你回过头来仔细检查你的代码,看是否漏写了引号。

  1. 如果您之前定义了变量字符串,下面的操作将会起作用 — 现在来试一试:
定 错误字串1 = 字符串1; 
控制台.日志(错误字串1);

现在将 字符串1 的值赋值给 错误字串1,赋值之后,两个字符串的值相等。

单引号和双引号

  1. 在君土脚本中,您可以选择单引号或双引号来包裹字符串。
    下面两种方式都可以:
定 单引号 = '使用单引号'; 
定 双引号 = "使用双引号"; 
控制台.日志(单引号); 
控制台.日志(双引号);
  1. 两者之间几乎没有什么区别,根据个人偏好来使用。但是,您应该选择一个并坚持使用它,不一致的引号混用代码可能会让人很迷惑,特别是如果您在同一个字符串中使用不同的引号!
    下面将返回一个错误:
定 错引号 = '地球上有什么?";
  1. 君土脚本会认为字符串没有被关闭,因为在字符串中您没有使用匹配类型的引号。
    以下这两种情况都是可以的:
定 单引号 = '我们可以使用双引号(")来包裹字符串。';
定 双引号 = "我们可以使用单引号(')来包裹字符串。"; 
控制台.日志(单引号); 
控制台.日志(双引号);
  1. 但是,您不能在字符串中包含相同的引号,因为它是用来包含它们的。下面将会出现错误,因为它会混淆字符串的结束位置:
定 混合字串 = '我们可以使用单引号(')来包裹字符串。';

这个指引将会让我们很好地进入下一个主题。

转义字符串中的字符

要修复我们之前的问题代码行,我们需要避免引号的问题。转义字符意味着我们对它们做一些事情,以确保它们被识别成文本,而不是代码的一部分。在君土脚本中,我们通过在字符之前放一个反斜杠来实现这一点。试试这个:

定 混合字串 = '我们可以使用单引号(\')来包裹字符串。';
控制台.日志(混合字串);

这回正常了。你可以用别的方式来达到一样的目的, 例如. \", 除此之外有一些特殊的代码 。

代码输出
\0空字符
\'单引号
\"双引号
\\反斜杠
\n换行
\r回车

更多细节请参见转义符号

连接字符串

  1. 连接是一个很花哨的编程词,意思是“连接在一起”。在君土脚本中连接字符串使用加号(+)操作符,我们也用它来将数字加在一起,但是在这种情况下,它做了一些不同的事情。让我们在君土开发环境中尝试一个例子。
定 串1 = '你好,'; 
定 串2 = '你好吗?'; 
定 连接 = 串1 + 串2; 
控制台.日志(连接);

变量 连接 的值的结果,它包含的值为 "你好,你好吗?"

  1. 上一个例子中, 我们只是把两个字符串连接在一起,但是你可以喜欢连接多少就多少个, 只需要在它们之间加上 + 操作符。试试这个:
定 多个 = 串1 + 串1 + 串1 + 串1 + 串2; 
控制台.日志(多个);
  1. 你还能用真实的字符串和变量来混合。试试这个:
定 回复 = 串1 + '我很好 —— ' + 串2; 
控制台.日志(回复);

注意: 当您在您的代码中输入一个实际的字符串时,用单引号或双引号括起来,它被称为字符串文字。

上下文中的串联

让我们看一下在操作中使用的连接——这是本课程早些时候的一个例子:

引 输入 自 '@君土务/格式输入';

控制台.日志('请输入一个名字:');
定 名字 = 输入('%文');
控制台.日志('你好 ' + 名字 + ', 很高兴见到你!');

这里我们使用的是第4行中的 输入() 函数, 它要求用户从终端输入,把他们输入的文本存储在一个给定的变量中 — 在这个例子中是就是 名字 变量。然后,我们在第5行中使用  控制台.日志()  函数来显示一段信息,其中包含一个字符串,我们用两个字符串常量和名字变量通过连接进行组合。

数字与字符

  1. 当我们尝试添加(或连接)一个字符串和一个数字时,会发生什么?
    让我们在我们尝试编译、运行一下:
控制台.日志('前面 ' + 242); 

您可能会认为这会抛出一个错误,但它运行得很好。
试图将字符串表示为一个数字并不是很讲的通,但是用数字表示一个字符串则不然,因此君土脚本很聪明地将数字转换为字符串,并将这两个字符串连接在一起。

  1. 你甚至可以用两个数字来这么操作——你可以通过用引号将数字包装成一个字符串。尝试以下方法(我们使用样/*typeof*/)操作符来检查变量是一个数字/*'number'*/还是一个字符串/*'string'*/):
定 日期 = '19' + '67'; 
控制台.日志(样 日期);
  1. 如果您有一个数值变量,您想要将其转换为字符串,并且不改变其他地方,或者您想将一个字符串转换为一个数字而不改变其其他地方,那么您可以使用以下两个构造:
    . 如果可以的话, 数字 对象将把传递给它的任何东西转换成一个数字。
    试一试:
定 串1 = '123'; 
定 数1 = 数字(串1); 
控制台.日志(样 数1);

. 另一方面,每个数字都有一个名为 转字() 的方法,它将把它转换成等价的字符串。
试试这个:

定 数1 = 123; 
定 串1 = 数1.转字(); 
控制台.日志(样 串1);

这些结构在某些情况下是非常有用的,例如,如果一个用户将一个数字输入到一个表单文本字段中,这将是一个字符串,但是如果你想要将这个数字添加到某些东西中时,你需要它是一个数字,所以你可以通过 数字() 来处理这个问题。

结论

这就是君土脚本中所涉及的字符串的基本内容。在下一篇文章中,我们将在此基础上,研究君土脚本中字符串的一些内置方法,以及如何使用它们来操纵我们的字符串,使之成为我们想要的形式。