Menu
CoddyTech

在字符串中搜索

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

in 运算符会告诉你一段文本是否出现在字符串中。如果你需要的不只是是或否,字符串还提供了搜索方法:

  • contains(text) 如果文本出现在任意位置,就返回 true,作用类似 in
  • begins_with(text) 和 ends_with(text) 只检查开头或结尾
  • find(text) 返回文本首次出现的位置索引;如果没有出现,则返回 -1
  • rfind(text) 返回文本最后一次出现的位置索引
  • count(text) 返回文本出现的次数
var email := "alice@coddy.tech"
print(email.begins_with("alice"))
print(email.ends_with(".tech"))
print(email.find("@"))
print(email.find("x"))
print(email.count("c"))
true
true
5
-1
3

find() 接受一个可选的第二个参数:搜索开始的索引。用它可以查找已找到的内容之后下一次出现的位置:

var text := "one fish, two fish"
var first := text.find("fish")
print(first)
print(text.find("fish", first + 1))
4
14

这些方法区分大小写:"Hello".contains("hello") 的结果是 false。请先使用 to_lower() 转换字符串,或者使用不区分大小写的版本:findn()、containsn() 和 countn()。

challenge icon

挑战

简单

程序会将电子邮件地址读入 email。检查它是否符合所有这些规则:

  • 它恰好包含一个 @
  • 它不以 @ 开头
  • 它不包含空格
  • 它以 .com、.org 或 .tech 结尾,大小写可以任意组合

如果每条规则都符合,就打印 valid,否则打印 invalid。对于输入 alice@CODDY.TECH,输出为:

valid

亲手试试

extends Node

func _ready():
	var email := OS.read_string_from_stdin()
	# 输出 valid 或 invalid
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: GDScript 在线编译器