Menu
CoddyTech

文字列の検索

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 2/78。

in 演算子は、文字列内にテキストが含まれているかどうかを教えてくれます。はい・いいえだけでは不十分な場合、文字列には検索メソッドがあります。

  • contains(text) は、in と同様に、テキストがどこかに含まれていれば true を返します
  • 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()には省略可能な2番目の引数があります。これは検索を開始するインデックスです。すでに見つけた箇所の次にあるものを見つけるには、これを使います。

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に読み込みます。次のすべてのルールを満たしているか確認します。

  • @がちょうど1つ含まれている
  • @で始まっていない
  • スペースが含まれていない
  • 大文字と小文字の組み合わせを問わず、.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オンラインコンパイラ