旧gaaamiiのブログ

間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

【Ruby】文字列を文字に分解して配列につっこむにはsplitメソッドを使うらしい

前期の授業で、「文字列探索のアルゴリズムがどうのこうの」っていうのをやりました。

Rubyで文字列探索アルゴリズムの実装(をやりたい)

授業としてはレポート課題を来週までに出せば良いだけで、コード書けとかいう課題はありません。が、せっかくプログラミングを勉強しているので実際にアルゴリズムを書いてみたいと思い、ちょっと頑張ってます。

できるなら最近勉強を始めたRubyで書きたいです(こういうことを文字列処理がイケイケのRubyでやろうとするのはほんと時間の浪費以外の何者でもないのかもしれないけど)。

配列に入れたい

で、早速困りました。文字列探索をするには一文字ずつ、配列の値として文字を保存しておきたいのに、インプットをgetsメソッドで受け取ると、文字列になってしまう。

ごちゃごちゃ考えてきもい感じの書き方をしたりもしたけど、なんだか上手くいきませんでした。

gets.chars

で文字としてもらえばいける!と思ったけどなぜか配列に入れるときに改行文字まで入れられたりして泣きそうになりました。

split("")でおっけー

いくつかぐぐったところ、文字列はsplit("")で分解できるらしい。それを配列に入れればいいのだから、下のようになる。

# 文字列から
target = gets
# 配列をつくる
targets = target.split("")

これで、要はこういうことになるはず。

target => "hogehoge"
targets => ["h","o","g","e","h","o","g","e"]