拆分与拼接
本课属于 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"。
挑战
简单程序会将一行以逗号分隔的单词读入 line。单词周围可能有空格,例如 red, green ,blue。
打印三行:
- 单词的数量
- 去掉单词周围的空格后,将它们转换为大写,并用
>(空格、大于号、空格)连接 - 最长的单词,不带空格。如果有多个单词长度相同,打印第一个
对于输入 red, green ,blue,输出为:
3
RED > GREEN > BLUE
green亲手试试
extends Node
func _ready():
var line := OS.read_string_from_stdin()
# 输出数量、拼接后的单词和最长的单词
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: GDScript 在线编译器