目次(まとめ)
◾️ deleteメソッドを使って、Rubyで定義した配列内の要素を削除する
◾️ 関連記事
こんにちは、みっちゃんです。
Rubyを使ってプログラミングしているんだけど、与えられた配列の中で削除したい要素があります。どうやったら削除することができますか?
配列内の要素の削除は、"delete" メソッドを使用することで可能です。
今回の記事では、テキストファイルを読み込んで、読み込んだ情報を使って配列を作り、その配列の中にある要素を削除する方法を紹介します。
deleteメソッドを使って、Rubyで定義した配列内の要素を削除する
ここでは、以下のようなテキストファイル(input.txt)をRubyで読み込むことを考えます。
apple
grape
orange
banana
meron
これを読み込んで配列変数 "array" に保存するためのRubyのスクリプトは、以下のような例(sample-1.rb)になります。
# sample-1.rb infile = open("input.txt", "r") # テキストファイル "input.txt" を、読み込み (read) モードで開いています array = Array.new() # 配列変数 "array" の初期化 while line = infile.gets # 読み込みモードで開いたファイルを、1行ずつ読み込んでいく繰り返し文です array << line.chomp # 改行コードを削除して、"array" に保存 end # 繰り返しはここまで infile.close # 開いていたファイルを閉じる puts array
これをターミナル上などで実行すると、以下のように出力されます(初心者の方で実行方法がわからない方は、こちらの記事をご参照ください)。
$ ruby sample-1.rb
apple
grape
orange
banana
meron
次に、"array" 変数内の "apple" を削除して、出力してみます。
Rubyでは、"delete" メソッドを使うことで配列内の要素(ここでは "apple")を削除することが可能です。
# sample-2.rb infile = open("input.txt", "r") array = Array.new() while line = infile.gets array << line.chomp end infile.close array.delete("apple") # ここで、"array" 変数から "apple" を削除 puts array
以前の記事でも紹介したように、Rubyには、"破壊的メソッド" と "非破壊的メソッド" の2種類が準備されていますが、"delete" メソッドにはその区別がありません。
上のように実行すると、"array" 変数の内容が置き換わります。
実行すると、以下のようになります。
$ ruby sample-2.rb
grape
orange
banana
meron