在字符串中搜索
本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 2 课,共 78 课。
in 运算符会告诉你一段文本是否出现在字符串中。如果你需要的不只是是或否,字符串还提供了搜索方法:
contains(text)如果文本出现在任意位置,就返回true,作用类似inbegins_with(text)和ends_with(text)只检查开头或结尾find(text)返回文本首次出现的位置索引;如果没有出现,则返回-1rfind(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
3find() 接受一个可选的第二个参数:搜索开始的索引。用它可以查找已找到的内容之后下一次出现的位置:
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()。
挑战
简单程序会将电子邮件地址读入 email。检查它是否符合所有这些规则:
- 它恰好包含一个
@ - 它不以
@开头 - 它不包含空格
- 它以
.com、.org或.tech结尾,大小写可以任意组合
如果每条规则都符合,就打印 valid,否则打印 invalid。对于输入 alice@CODDY.TECH,输出为:
valid亲手试试
extends Node
func _ready():
var email := OS.read_string_from_stdin()
# 输出 valid 或 invalid
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: GDScript 在线编译器