#文字列の中で奇数番目の文字のみ出力したい
例えば、アルファベットの中で、奇数番目の文字のみを出力したい場合。
str = "abcdefghijklmnopqrstuvwxyz"
str.each_char.with_index{|c, index|
print c if index % 2 == 0
}
# => acegikmoqsuwy
それぞれ解説していきます。
何か間違った事を記載してたらご指摘して頂けると嬉しいです。
##each_char
String クラスの chars メソッド(別名 each_char)を使用すると、文字列内の文字を1文字ずつ取り出しながら処理することができます。
x = "TOKYO"
y = x.chars
# => ["T", "O", "K", "Y", "O"]
##each.with_index
eachで回しつつ、それぞれのデータに番号を付けたい場合に使う。
今回の場合だと、まず取り出された1文字1文字は変数であるcに入っている。
そして、each.with_indexにより番号が付けられた変数indexが2で割り切れてたら、変数cは出力するという形になっている。
2で割り切れたら偶数になるのだが、プログラミングの数字は0も含むので、逆転してしまっている。
str = "abcdefghijklmnopqrstuvwxyz"
str.each_char.with_index{|c, index|
print c if index % 2 == 0
}
# => acegikmoqsuwy
##参考文献
instance method String#each_char
https://docs.ruby-lang.org/ja/latest/method/String/i/each_char.html
大文字にして奇数番目のみ出力するプログラム
http://sinyt.hateblo.jp/entry/2013/12/22/183217
each_with_indexの使い方
https://qiita.com/tsuchinoko_run/items/5cef7dd9d8baf48ffde7