Ruby Recipe101 配列の要素の出現回数を調べる
配列にある各要素の出現回数を調べるには以下のようにハッシュを使います。
#!/usr/bin/env ruby # -*- coding: utf-8 -*- ary = %w(田中 佐藤 伊藤 田中 トクマ 井上 石原 伊藤 いとう いとう いとう いとう) count = Hash.new(0) ary.each do |elem| count[elem] += 1 end p count #=> {"田中"=>2, "佐藤"=>1, "伊藤"=>2, "井上"=>1, "石原"=>1, "いとう"=>4}
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 4人 クリック: 80回
- この商品を含むブログ (27件) を見る
Ruby Recipe47 文字列を単語に分ける
文字列を単語毎に分割してリストを作るやり方。
単純に「単語に分ける」といっても何を持って単語とするかによってやり方は異なります。
str = "def foo(n) n * 3 end"
を例に3つのやり方で分割してみます。
空白類文字を区切りにして分ける
p str.split(nil) #=> ["def", "foo(n)", "n", "*", "3", "end"]
[a-zA-Z0-9_]のつながりだけを単語と見なして分ける
p str.scan(/\w+/n) #=> ["def", "foo", "n", "n", "3", "end"]
/\w+/か/\w+|[^\s\w]+/の2つを単語と見なして分ける
p str.scan(/\w+|[^\s\w]+/) #=> ["def", "foo", "(", "n", ")", "n", "*", "3", "end"]
基本的には一番上のsplitメソッドを使うやり方で事足りるのかな?
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 4人 クリック: 80回
- この商品を含むブログ (27件) を見る
Ruby Recipe38 数値を表す文字列か調べる
文字列が"1"とか"123"とか数値を表すものかどうかを調べたい時には以下のやり方で調べられます。
# Integer()で変換できれば数値、例外発生したら違う def integer_string?(str) Integer(str) true rescue ArgumentError false end # Float()で変換できれば数値、例外発生したら違う def float_string?(str) Float(str) true rescue ArgumentError false end
ちなみに結果は以下のようになります。
str = "あいうえお" str2 = "123" str3 = "3.14" str4 = "12345" # 普通の文字列 integer_string?(str) #=> false # 数値の文字列 integer_string?(str2) #=> true # 小数点の文字列 integer_string?(str3) #=> false # 全角数字の文字列 integer_string?(str4) #=> false # 普通の文字列 float_string?(str) #=> false # 数値の文字列 float_string?(str2) #=> true # 小数点の文字列 float_string?(str3) #=> true # 全角数字の文字列 float_string?(str4) #=> false
小数点の場合、結果が異なるので(Integer()使ってるので)場合によって使い分けるのがいいかもですね!
ちなみに to_i メソッドとかの場合、無理やり変換しようとしてしまい例外が発生しないので、Integer()を使わないとなのですよー
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 4人 クリック: 80回
- この商品を含むブログ (27件) を見る
Rubyレシピブック買ったよ!
Rubyを始めたので、手っ取り早いく学びたいし『Rubyレシピブック 第3版 303の技』を買いました!
- 作者: 青木峰郎,後藤裕蔵,高橋征義,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/08/28
- メディア: 単行本
- 購入: 4人 クリック: 80回
- この商品を含むブログ (27件) を見る
これからブログにはちょいちょい気になるレシピを書いていこうと思うよ!
ターミナルで設定ファイルを読み込まずにemacsを起動する
がっつり書く場合は GUI の emacs を使えばいいのだけど、ターミナルで作業してるときにちょちょっとファイルをいじるときにいちいち起動に時間をかかるのはめんどくさい・・・
今まではそういうときには vim を使ってたのだけど、どんどんキーバインドを忘れてきてる。
なので簡単に emacs を起動したい。
そんなときは .zshrc に以下の alias を追加する。
# emacs を設定ファイルを読み込まず起動する alias emacs="emacs -q"
ちなみに設定してる alias を見るには
$ alias
設定してる alias を削除する
$ unalias emacs
でできるよ
Markdown編集モードテスト
見出し1
見出し2
見出し3
強調
強調
強調
強調
#!/usr/bin/ruby
# coding: utf-8
puts "Hello world!"
- りすとあいてむ1
りすとあいてむ2
すうじつきりすとあいてむ1
- すうじつきりすとあいてむ2
見出しのレベルが変わってないのはデザインの問題か。
あとolになってない?