Menu
CoddyTech

分割と結合

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

すでにsplit()で文字列を分割し、join()で配列を結合しました。どちらも、さらに多くのことができます。

split()の各要素は文字列で、区切り文字の間にあるとおりに、空白も含まれます。使う前に、各要素を整形するか変換してください。結果の要素はインデックスを使って置き換えられます:

var items := "sword, shield ,bow".split(",")
print(items)
for i in range(items.size()):
	items[i] = items[i].strip_edges()
print(items)
["sword", " shield ", "bow"]
["sword", "shield", "bow"]

split() の第2引数は以前出てきたものです。true は空の要素を保持し、false はそれらを取り除きます。第3引数は分割回数を制限します。split(" ", true, 1) は最初の空白でのみ分割し、コマンドと行の残りの部分を区切ります。

print("say hello there".split(" ", true, 1))
["say", "hello there"]

rsplit()も同じように動作しますが、右から切り分ける位置を数えるため、ファイル名の最後のドットで分割できます:

print("save.backup.json".rsplit(".", true, 1))
["save.backup", "json"]

join()は数値の配列も受け取り、それぞれをテキストに変換します。", ".join([3, 1, 2])は"3, 1, 2"です。

challenge icon

チャレンジ

簡単

プログラムは、カンマで区切られた単語の1行をlineに読み込みます。単語の周りにはスペースが入る場合があります。たとえば、red, green ,blueのようになります。

次の3行を出力してください。

  1. 単語の数
  2. 単語の前後のスペースを取り除き、大文字にして、 > (スペース、大なり記号、スペース)でつないだもの
  3. スペースを含まない最長の単語。同じ長さの単語が複数ある場合は、最初の単語を出力してください

入力がred, green ,blueの場合、出力は次のようになります。

3
RED > GREEN > BLUE
green

自分で試してみよう

extends Node

func _ready():
	var line := OS.read_string_from_stdin()
	# 個数、結合した単語、最も長い単語を出力する
quiz icon腕試し

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

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

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