Menu
CoddyTech

拆分与拼接

本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 4 课,共 78 课。

你已经用 split() 拆分字符串,也用 join() 拼接数组了。这两个方法还能做更多事情。

split() 分割得到的部分都是字符串,和分隔符之间的内容完全一致,包括空格。使用每个部分之前,先清理或转换它。可以通过索引替换结果中的元素:

var items := "sword, shield ,bow".split(",")
print(items)
for i in range(items.size()):
	items[i] = items[i].strip_edges()
print(items)
["sword", " shield ", "bow"]
["sword", "shield", "bow"]

split() 的第二个参数你之前见过:true 会保留空片段,false 会删除空片段。第三个参数会限制切分次数。split(" ", true, 1) 只在第一个空格处分割,这样就能把命令和该行的其余部分分开:

print("say hello there".split(" ", true, 1))
["say", "hello there"]

rsplit() 的作用方式相同,但它从右侧开始计算切分次数,因此可以在文件名中最后一个点号处切分:

print("save.backup.json".rsplit(".", true, 1))
["save.backup", "json"]

join() 也接受数字数组,并将每个数字转换为文本:", ".join([3, 1, 2]) 的结果是 "3, 1, 2"。

challenge icon

挑战

简单

程序会将一行以逗号分隔的单词读入 line。单词周围可能有空格,例如 red, green ,blue。

打印三行:

  1. 单词的数量
  2. 去掉单词周围的空格后,将它们转换为大写,并用 > (空格、大于号、空格)连接
  3. 最长的单词,不带空格。如果有多个单词长度相同,打印第一个

对于输入 red, green ,blue,输出为:

3
RED > GREEN > BLUE
green

亲手试试

extends Node

func _ready():
	var line := OS.read_string_from_stdin()
	# 输出数量、拼接后的单词和最长的单词
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: GDScript 在线编译器