1

たとえば"AA"、列 index から文字シーケンスを取得するにはどうすればよい26ですか?

4

3 に答える 3

9

インデックス作成を処理する再帰ハッシュは次のとおりです。

index_hash = Hash.new {|hash,key| hash[key] = hash[key - 1].next }.merge({0 => "A"})
index_hash[26] #=> "AA"

ここで重要なのは.nextメソッドです。このメソッドは、文字列に送信されると、アルファベット順に続く文字列を返します"CD".next #=> "CE"

最初の質問を明確にしていただけますか?

于 2012-11-27T06:41:12.573 に答える
2
class Numeric
  Alph = ("A".."Z").to_a
  def alph
    s, q = "", self
    (q, r = (q - 1).divmod(26)) && s.prepend(Alph[r]) until q.zero?
    s
  end
end

(26+1).alph #=> "AA"
于 2012-11-27T07:18:22.840 に答える