2007-07-01から1ヶ月間の記事一覧

添字に正規表現を使って置換

RubyではString#[]=で正規表現を指定すると破壊的な置換ができます。 以下の例では、strが保持しているStringオブジェクトを書き換えてcolorをflowerにしています。 str = 'Do you like this color?' str[/color/] = 'flower' p str #=> "Do you like this f…

String.newではto_strメソッドが使われる

7月になったのでStringクラスで遊びましょう(意味なしジョーク)。 オブジェクトoを文字列として扱うときにはto_sメソッドを使いますが、String.new(o)で文字列を作るときには、to_strメソッドを使います。 class Rubyco def initialize(s) @s = s end def …

String#%は書式制御

RubyのString#%メソッドは、レシーバをprintf的書式制御文字列として扱います。 以下の例では、0〜31の数値を10進数、16進数、2進数で表示します。 (0..31).to_a.each do |k| puts "%5d %5X %5b" % [k, k, k] end 実行結果です。 0 0 0 1 1 1 2 2 10 3 3 11 …

String#*は文字列の繰り返し

String#*を使って、指定した回数繰り返した新しい文字列を作ることができます。 以下のプログラムでは'-'を20個並べた横線を表示します。 puts '-' * 20 実行結果です。 --------------------ちょっと遊びましょうか。 ['-', '=', '+'].each do |a| ['-', '=…

指定した期間内から、ランダムで一日を選択する

randを使ってある期間(1940〜1980とか)をランダムに返すにはどうしたらいいんだぁあぁあぁあぁあ http://d.hatena.ne.jp/ayabaud/20070704/1183527974 を読んで、別のことを考えました。 指定した期間内から、ランダムで一日を選択する方法。全期間分のDat…