1. 主页
  2. 文档
  3. 学习君土脚本
  4. 君土脚本 第一步
  5. 有用的字符串方法

有用的字符串方法

现在我们来学习基本的字符串语法, 让我们开始思考一下我们可以对内置方法的字符串做什么有用的操作,例如查找文本字符串的长度,加入和分割字符串, 将字符串中的一个字符替换为另一个字符。

把字符串当作对象

我们曾经说过,现在我们重申一遍, 在君土脚本中,一切东西都可以被当作对象。例如我们创建一个字符串。

定 字串1 = '这是我的字符串';

一旦你的变量成为字符串对象实例, 你就可以有大量的原型和方法编辑它. 如果你进入字串/*String*/对象页并观察页面旁边的列表你就会明白这一点。

可能现在你的大脑开始迷糊了,不要担心! 在你的学习进程中你真的不需要过早地理解大部分这方面知识,但是接下来我们这儿要看的是你要经常使用的一些知识。

获得字符串的长度

这很简单 — 你可以很轻松的使用 长/*length*/ 属性. 尝试输入以下的两行代码:

定 编程语言 = '君土脚本';
控制台.日志(编程语言.长);

这个结果应该返回一个数字:4,因为”君土脚本”的长度为4个字符. 说字符串的长度有用是有很多原因的, 例如,你可能想算出一连串名字的长度,并用名字长度来作为名字排序的依据,亦或让一个用户知道他输入的用户名太长,已经超出了输入的字符串长度限制。

检索特定字符串字符

在相关的注释中,您可以使用方括号表示法返回字符串中的任何字符 – 这意味着您可以在变量名的末尾包含方括号([ ])。 在方括号内,您可以包含要返回的字符的编号,例如,您要检索第一个字符,可以这样做:

控制台.日志(编程语言[0]);

电脑从0开始,不是1! 要检索任何字符串的最后一个字符,我们可以使用下面这行,将这种技术与我们上面看到的长/*length*/属性相结合起来:

控制台.日志(编程语言[编程语言.长-1]);

“君土脚本”的长度为4,但由于计数从0开始,所以字符位置为3,因此需要长度为长-1。 例如,您可以使用它来查找一系列字符串的第一个字符。

在字符串中查找子字符串并提取它

  1. 有时候你会想要找出一个较小的字符串, 是否存在于一个较大的字符串中(我们通常会说一个字符串中存在一个子字符串)。 这可以使用位/*indexOf*/()方法来完成,该方法需要一个参数 —— 你想要搜索的子字符串。 尝试以下:
控制台.日志(编程语言.位('脚本'));

结果是2,因为子字符串“脚本”从“君土脚本”内的位置2(0,1,2 —— 所以从第3个字符)开始。 这样的代码可以用来过滤字符串。 例如,假设我们有一个网页地址列表,但我们只想打印出包含“脚本”的那些地址。

  1. 这可以用另一种可能更有效的方式来实现。 尝试以下:
控制台.日志(编程语言.位('代码'));

这应该会得到 -1 的结果 —— 当在主字符串中找不到子字符串(在本例中为“代码”)时将返回 -1

您可以使用它来查找不包含子串“代码”的所有字符串实例,或者如果使用否定运算符,请执行以下操作。 你可以这样做:

若(编程语言.位('脚本') !== -1) {
   // 对字符串作一些操作 
}
  1. 当你知道字符串中的子字符串开始的位置,以及想要结束的字符时,抽取/*slice*/() 可以用来提取 它。 尝试以下:
控制台.日志(编程语言.抽取(0,2));

这时返回”君土”——第一个参数是开始提取的字符位置,第二个参数是提取的最后一个字符的后一个位置。所以提取从第一个位置开始,直到但不包括最后一个位置。(此例中)你也可以说第二个参数等于被返回的字符串的长度。

  1. 此外,如果您知道要在某个字符之后提取字符串中的所有剩余字符,则不必包含第二个参数,而只需要包含要从中提取的字符位置 字符串中的其余字符。 尝试以下:
控制台.日志(编程语言.抽取(2));

这返回“脚本” —— 这是因为2的字符位置是字符’脚’,并且因为没有包含第二个参数,所以返回的子字符串是字符串中的所有剩余字符。

注意: 抽取()的第二个参数是可选的 :如果没有传入这个参数,分片结束位置会在原始字符串的末尾。这个方法也有其他的选项;学习抽取()这页,来看看你还能发现什么其他作用。

转换大小写

字符串方法转小写/*toLowerCase*/()和转大写/*toUpperCase*/()操作一个字符串, 将所有字符分别转换为小写或大写。 例如,如果要在将数据存储在数据库中之前对所有用户输入的数据进行规范化,这可能非常有用。

让我们尝试输入以下几行来看看会发生什么:

定 字符串1 = '地铁A口。b超';
控制台.日志(字符串1.转小写()); // 打印 地铁a口。b超
控制台.日志(字符串1.转大写()); // 打印 地铁A口。B超

替换字符串的某部分

您可以使用替换/*replace*/()方法将字符串中的一个子字符串替换为另一个子字符串。在基础的层面上, 这个工作非常简单。你当然可以用它做一些更高级的事情,但目前我们不会涉及到。

它需要两个参数 – 要被替换下的字符串和要被替换上的字符串。 尝试这个例子:

控制台.日志(编程语言.替换('君土','编程'));

注意,在实际程序中,想要真正更新 编程语言 变量的值,您需要设置变量的值等于刚才的操作结果;它不会自动更新子串的值。所以事实上你需要这样写:

编程语言 = 编程语言.替换('君土','编程');

主动学习的示例

在本节中,我们会让您尽力编写一些字符串操作代码。 在下面的每个练习中,我们有一个字符串数组,一个循环,用于处理数组中的每个值,并将其显示在项目符号列表中。 您现在不需要了解数组或循环 – 这些将在以后的文章中解释。 所有你需要做的每一种情况都是写出将以我们想要的格式输出字符串的代码。

过滤问候留言

在这个练习中,我们将简单介绍一下 – 我们有一系列的问候卡片消息,但我们希望对它们进行排序,以列出新年消息。 我们希望您在 若/*if*/(...) 结构中填写条件测试,以测试每个字符串,并将其打印在列表中,如果它是新年消息。

  1. 首先考虑一下如何测试每种情况下的消息是否为新年消息。 所有这些消息中都有什么字符串,您可以使用什么方法来测试是否存在?
  2. 然后,您需要编写 操作数1 操作符 操作数2 形式的条件测试。 左边的东西等于右边的东西吗? 或者在这种情况下,方法调用在左边返回的结果在右边?
  3. 提示:在这种情况下,测试方法调用是否不等于某个结果可能更有用。
定 问候留言 = ['生日快乐',
  '新年快乐',
  '新年好',
  '合家幸福,恭喜发财',
  '早日康复'];

为 (定 甲 = 0; 甲 < 问候留言.长; 甲++) {
  定 留言 = 问候留言[甲];
  若 () {  // 条件测试
    控制台.日志(留言);
  }
}
/* 打印
新年快乐
新年好
*/

结论

你不能逃避的事实是, 在编程中处理单词和句子是非常重要的——特别是在编程脚本中,因为网站都是关于与人沟通的。 本文已经给出了您现在需要了解的关于操作字符串的基础知识。这将在未来进入更复杂的主题时为您服务。 接下来,我们将在短期内研究我们需要关注的最后一个主要的数据类型——数组。