2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】文字列の中で奇数番目の文字のみ出力したい

Last updated at Posted at 2020-08-22

#文字列の中で奇数番目の文字のみ出力したい
例えば、アルファベットの中で、奇数番目の文字のみを出力したい場合。

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

2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?