私は今、Rubyを使っており、その知識を深めるためRuby2.1技術者認定試験 Silverをプログラミングスクールで毎日解いています。その中で、1日1問、解説を載せ、積み上げを行なっていきます。
よれけば、ご覧ください。
今日の問い
s = ["h", "e", "l", "l", "o"].join("").chars.to_a
print s
実行結果はどうなるか?
このコードは、文字列 "hello" の各文字を個別の要素として持つ配列 s
を作成し、その内容を出力。
解説:
-
["h", "e", "l", "l", "o"]
は、文字列 "hello" の各文字を要素として持つ配列を表す。 -
join("")
は、配列の要素を空の文字列""
で連結することを意味する。つまり、配列の要素を連結して文字列 "hello" を作成する。 -
chars
メソッドは、文字列を個別の文字の配列に変換する。この場合、文字列 "hello" が文字の配列["h", "e", "l", "l", "o"]
に変換される。 -
to_a
メソッドは、オブジェクトを配列に変換する。chars
メソッドによって返された文字の配列は既に配列なので、このステップは不要だが、影響なし。 -
print s
は、配列s
の内容を出力。
join構文
array.join(separator)
**array
は結合したい要素を持つ配列を指定し、separator
**は要素間の区切り文字列を指定する。区切り文字列を空の文字列 ""
とすることで、要素を連結する際に区切り文字を挿入しないことを意味する
charsメソッド構文
string.chars
**string
は対象の文字列を指定する。chars
**メソッドは、指定された文字列を個別の文字の配列として返す。
具体例
s = "hello"
s.chars
上記のコードでは、文字列 "hello" の各文字を個別の要素として持つ配列を作成するために、**chars
**メソッドが使用されている。
**chars
メソッドは文字列を構成する各文字を個別の要素として取得するために使用される。例えば、文字列 "hello" をchars
メソッドで処理すると、["h", "e", "l", "l", "o"]
**という配列が得られる。
なお、**chars
メソッドは文字列専用のメソッドであり、配列に対しては使用できない。配列を文字列に変換する場合には、join
**メソッドを使用する。
出力結果
["h", "e", "l", "l", "o"]
解説は以上です。
問いの答え:
["h", "e", "l", "l", "o"]