Menu
CoddyTech

替换与去除空白

本课属于 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(" ", "_")。

challenge icon

挑战

简单

程序会将关卡标题读入 title。把它转换成slug,也就是可用作文件名的标题形式,然后输出。按以下顺序操作:

  1. 删除两端的空格
  2. 将其转换为小写
  3. 将剩余的每个空格替换为 -
  4. 删除所有 !、? 和 .

输入 Is Godot Fun? (两端带有空格)时,输出为:

is-godot-fun

亲手试试

extends Node

func _ready():
	var title := OS.read_string_from_stdin()
	# 生成 slug 并打印出来
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: GDScript 在线编译器