0
単語からいくつかの文字を抽出し、化学記号で置き換えたいと思います。文字列内の文字をハッシュ値に置き換える方法
これはうまくいきますが、長すぎます。
puts "Enter your name"
name = gets.chomp
if name.include? 'br'
name.gsub!('br', 'Br')
end
if name.include? 'ba'
name.gsub!('ba', 'Ba')
end
if name.include? 'cr'
name.gsub!('cr', 'Cr')
end
if name.include? 'ac'
name.gsub!('ac', 'Ac')
end
if name.include? 'al'
name.gsub!('al', 'Al')
end
if name.include? 'am'
name.gsub!('am', 'Am')
end
私はこのようにしようとしていますが、動作しません。なにが問題ですか?
breakingbad.rb:15:in `include?': no implicit conversion of Hash into String (TypeError)
from breakingbad.rb:15:in `<main>'
(/#{ '|' symbols.keys.join()} /、記号)' あなたが説明することができますそれは少ししてください? –
これは '/(ac | al | am | br | ba | cr)/'と同じ正規表現です。シンボルに対して 'to_s'をコールすると、あなたのコードも動作するはずです。 'symbols.each {| key、value | name.gsub(key.to_s、value)} '。また、 'name.include?記号は間違っています。インクルードメソッドはString引数を必要とします。 – Santhosh
大丈夫です!ありがとうございます:) –