Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

【ruby】paizaのための覚えておくと便利なメソッド1(ruby編)

1.読者対象

緊急事態宣言で外出禁止令が敷かれ切ない日々を送っている皆様が読者対象です。
三密を徹底的に排除するべく、飲食店関係や大好きなカラオケまでもが休業状態。
密かに楽しみにしていたフェスも、多分今年はいけないだろう。

私事で恐縮だが、暫く封印していたポケモンにも、ジュラシックワールドにも、新しいキャラが増えすぎて何だかついていけない。
そんなこともあって休日を持て余していた。

そんな時に目に入ったのが

『paiza スキルチェック』

だった。

プログラマの実力を測れるという存在だ。
いきなり高レベルの問題に取り組んでも、くじけてしまうかもしれない。
中々イケイケの言語が並んでいる。
業務で使わない言語でDランクから試してみる。
足し算のプログラムができただけでも、100点とか出るので気分は上がる

活きたプログラミング言語の勉強にいいかも!!

『緊急事態宣言でつまらない日々のお供にpaizaを』

有り余る暇な時間を問題によっては『6時間近く格闘』なんてこともざらだ。

このスキルチェックを進めるには、知っておく必要のある関数がいくつかある。
paizaスキルチェックでは、入力変数を受け取って、その内容を元に処理を記述していく
流れになる。
以下に役立ちそうなメソッドをピックアップした。(初級程度ならいけそうかも)

2.役立つメソッド一覧

(ⅰ)chompメソッド

getsで入力内容を受け取る時に、文字列の最後に改行が入っていたりする。
この改行を取り除いてくれるのがこのメソッド。

paiza_memo1.rb
dino_name1=gets
puts dino_name1+"3"
#改行を削除
puts dino_name1.chomp+"5"

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
Tyrannosaurus
Tyrannosaurus
3
Tyrannosaurus5

chompを使わないと、改行も出力されている事がお分かりだろう。
ここで最後の改行を削除することが第一歩となる。

(ⅱ)countメソッド

これが素晴らしいメソッド。
ある文字列に含まれる特定の文字列の個数を数えることができるメソッド。
中々貴重。

paiza_memo1.rb
#略

dino_name2='Tyrannosaurus'

#指定文字列の中に、nが含まれる個数
puts dino_name2.count('n')
#指定文字列の中に、oが含まれる個数
puts dino_name2.count('o')
#指定文字列の中に、xが含まれる個数
puts dino_name2.count('x')

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
・・・
2
1
0

c:\ruby_pg>

(ⅲ)sliceメソッド

文字列を部分的に抽出するメソッド。
..と...で、処理が違うので注意
slice(開始位置..終了位置)
slice(開始位置...終了位置)
⇒開始位置を含む終了位置-開始位置の長さの文字列が抽出
slice(位置):指定した位置の文字列を抽出。

paiza_memo1.rb
#略
dino_name3='IndominusRex'

puts dino_name3.slice(3)
puts dino_name3.slice(0..dino_name3.length-3)
puts dino_name3.slice(0...dino_name3.length-3)
puts dino_name3.slice(2..5)
puts dino_name3.slice(2...5)

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
o
IndominusR
Indominus
domi
dom

c:\ruby_pg>

(ⅳ)to_iメソッド

間違った例
paiza_memo1.rb
#略
numstr=gets.chomp!
puts numstr+5

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
33
paiza_memo1.rb:36:in +': no implicit conversion of Fixnum into String (TypeError)
from paiza_memo1.rb:36:in
'

c:\ruby_pg>

自動的に型を認識してくれないので、加算ができないのである

修正後

paiza_memo1.rb
numstr=gets.chomp!
puts numstr.to_i+5

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
33
38

c:\ruby_pg>

(ⅴ)gsubメソッド

gsub(変換前文字列,返還後文字列)という文字列置換メソッド。
これも出番が多い関数。

実行例

paiza_memo1.rb
#略
dino_name5=gets.chomp!
tmpstr=dino_name5
puts tmpstr.gsub(dino_name5,"IndominusRex")

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
cat
IndominusRex

c:\ruby_pg>

猫がインドミナスレックスに変身してしまった。

(ⅵ)splitメソッド

split(区切り文字)で区切り文字を指定すると、文字列を配列に変換できるメソッド。
これはもう超鉄板。

実行例

paiza_memo1.rb
dinostr="Tyrannosaurus Velociraptor Stegosaurus"

ar_dino=dinostr.split(' ')

puts ar_dino[0]
puts ar_dino[1]

実行結果

c:\ruby_pg>ruby paiza_memo1.rb
Tyrannosaurus
Velociraptor

c:\ruby_pg>

最後に

paizaにトライするのに最低限必要になりそうな関数をまとめてみました。
『ソースコードに恐竜を』をテーマに終えることが出来てよかった。。。
それでは皆様良き自粛ライフを!!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
16
Help us understand the problem. What are the problem?