替换与去除空白
本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 3 课,共 78 课。
replace(what, with) 会返回一个新字符串,其中每个 what 都会被替换为 with。替换为空字符串会移除文本:
var phone := "555-123-4567"
print(phone.replace("-", ""))
print(phone.replace("-", " "))
print(phone)5551234567
555 123 4567
555-123-4567原始字符串不会改变。replace() 区分大小写;replacen() 执行相同的操作,但不区分大小写:
var chat := "Hello hello HELLO"
print(chat.replace("hello", "hi"))
print(chat.replacen("hello", "hi"))Hello hi HELLO
hi hi hi用户输入的文本周围通常会有多余的空格。strip_edges() 会删除两端的空格、制表符和换行符,并保留中间的空格:
var typed := " Ana Lee "
print("[" + typed.strip_edges() + "]")[Ana Lee]strip_edges(true, false) 只会删除左端的内容,strip_edges(false, true) 只会删除右端的内容。要删除末尾特定的文本,请使用 trim_prefix() 或 trim_suffix()。如果字符串中没有该文本,它们不会做任何更改:
print("level_03.tscn".trim_suffix(".tscn"))
print("level_03.tscn".trim_suffix(".png"))level_03
level_03.tscn这些方法都会返回一个字符串,因此你可以将它们串联起来:raw.strip_edges().to_lower().replace(" ", "_")。
挑战
简单程序会将关卡标题读入 title。把它转换成slug,也就是可用作文件名的标题形式,然后输出。按以下顺序操作:
- 删除两端的空格
- 将其转换为小写
- 将剩余的每个空格替换为
- - 删除所有
!、?和.
输入 Is Godot Fun? (两端带有空格)时,输出为:
is-godot-fun亲手试试
extends Node
func _ready():
var title := OS.read_string_from_stdin()
# 生成 slug 并打印出来
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: GDScript 在线编译器