def sort_string ( head, hash, res ) res.push head Hash[ hash.sort ].each_key { |key| res.push key } # sort hash.clear # 空にする end
text.each_line do |line| # 各行 line.chomp! # 末尾の改行を削除する next if line.empty? # 空文字は処理しない
if line.start_with? '*' # 先頭文字が、* なら sort_string( header, str_hash, result ) unless str_hash.empty? # 空でなければ header = line else str_hash[ line ] = true end end
sort_string( header, str_hash, result ) puts result