たとえば"AA"
、列 index から文字シーケンスを取得するにはどうすればよい26
ですか?
1598 次
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 に答える