String#... の取捨選択

「文字列」は、ただStringクラスの解説をするだけではなく、基礎編と応用編の中間に位置するので、前後の内容を踏まえたバランスが必要。以前に書いた基礎編を読み返して、スムーズな流れを作らないと。

Stringクラスの持つメソッドで紹介すべきものはどれか。

  • capitalize, capitalize!
  • downcase, downcase!
  • upcase, upcase!
  • swapcase, swapcase!
    • → $KCODE が適切に設定されていなければ、漢字コードの一部も変換してしまいます(これは、ShiftJIS コードで起こり得ます)。逆に、$KCODE を設定してもマルチバイト文字のアルファベットは処理しません。
  • +
  • chomp, chomp!
  • sub, sub! 1.7 以降は、その文字列そのものがパターンになります。
  • gsub!, gsub!
  • length, size
  • oct, hex, to_i, to_f
    • → 逆に、数値を文字列に変換するには sprintf, %, Integer#to_s を使用します。
p "0b10".to_i(0)  # => 2
p "0o10".to_i(0)  # => 8
p "010".to_i(0)   # => 8
p "0d10".to_i(0)  # => 10
p "0x10".to_i(0)  # => 16
  • reverse, reverse!
  • scan 配列を返す。ブロックを与えると繰り返し処理
  • split
  • each, each_line 1.9でeachがなくなる。1.8はどちらも可

メソッド選び、取捨選択が難しい。自分が何年間もRubyコード書き続けてきた経験を重視して選びたい。