<DAY102>rubyコードと忘れていたメソッドメモ
学習状況
●学習日数 102日
●学習時間(本日)6.5時間
●累計学習時間 461.5時間
●一日あたりの平均学習時間 4.52時間
はじめに
昨日は勉強進まず、だらけた1日だった。
気を取り直し、疑問を解消すべく取り組んでいく。
追加で学んだメソッド
メソッド名 | 効果 | 式の例 | 式の実行結果 |
---|---|---|---|
select | 配列に入った対象を1づつ取り出し条件に合えばあっている分のみ入れ直す | arrays.select{(array) array == 0,()ではないからね!} | [0,0,0] |
include?() | 要素に()が含まれているか。true,falseで判断 | "kawa".include("kawa") | true |
empty? | 要素に()が含まれているか。true,falseで判断 | "kawa".include("kawa") | true |
rubyの問題から。
<実装条件>
入力されたデータを検索し表示するには?
本の著者とタイトルが登録できる事
著者とタイトルが検索できる機能がある事
登録している本の数が表示できる事
終了できること
自分で書いた答え。
def register_book (books) book = {} puts "タイトルを入力して下さい" book[:title] = gets.chomp puts "著者を入力して下さい" book[:author] = gets.chomp books << book end def search_book(books) puts "本の登録数は#{books.length}冊あります" return if books.length ==0 books.each_with_index do |book,i| puts "#{ i +1 }番:タイトル:#{book[:title]}著者:#{book[:author]}" end puts "検索したい番号を入力して下さい" number = gets.to_i puts "タイトルもしくは著者を入力して下さい" keyword = gets.chomp if books[number-1][:title].include?(keyword) || books[number-1][:author].include?(keyword) puts <<~EOS ----------検索結果---------------- タイトル:#{books[number-1][:title]} 著者は: #{books[number-1][:author]} --------------------------------- EOS else puts "検索できない" end end books = [] loop do puts <<~EOS [1]本の登録を行う [2]本のタイトルと著者を検索する [3]本を終了する EOS input = gets.to_i if input == 1 register_book(books) elsif input == 2 search_book(books) elsif input == 3 exit else puts "無効な値です" end end
rubyのメソッド
昔やって理解していたはずなのにすっかり忘れていた人たち
メソッド名 | 効果 | 式の例 | 式の実行結果 |
---|---|---|---|
reverse | 文字列の並びを反転させる事ができる | "abcde".reverse | "edcba" |
"abcde".sort | 条件指定して並び替え["a","b","c","d","e" ].sort{ | a,b | b<=>a } |
upcase | 文字列の小文字を大文字に | "aaaa".upcase | "AAAA" |
downcase | 文字列の大文字を小文字に | "AAAA".dowmcase | "aaaa" |
capitalize | 先頭の文字のみを変換する | "hello".capitalize | "Hello" |