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に読み込みます。これをスラッグ(ファイル名として使えるタイトルの形式)に変換して、出力してください。次の順に行います。

  1. 両端の空白を削除する
  2. 小文字に変換する
  3. 残っている空白をすべて-に置き換える
  4. !、?、.をすべて削除する

入力が Is Godot Fun? (前後に空白あり)の場合、出力は次のとおりです。

is-godot-fun

自分で試してみよう

extends Node

func _ready():
	var title := OS.read_string_from_stdin()
	# スラッグを生成して出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ