我用這個 ruby?? 方法將數字轉換為莫爾斯電碼并且它有效,但現在我試圖做相反的事情(將莫爾斯電碼輸入轉換為數字),但我不知道如何。
def convert(morse_code)
morse_code = {
"1" => ".----",
"2" => "..---",
"3" => "...--",
"4" => "....-",
"5" => ".....",
"6" => "-....",
"7" => "--...",
"8" => "---..",
"9" => "----.",
"0" => "-----"
}
@converted = gets.chomp().downcase.gsub(/\w/, morse_code)
end
puts convert(@converted)
我試圖更改哈希中字串的位置,但實際上不起作用。
到目前為止我嘗試過的:
def convert(morse_code)
morse_code = {
'.----': '1', '..---': '2',
'...--': '3', '....-': '4',
'.....': '5', '-....': '6',
'--...': '7', '---..': '8',
'----.': '9', '-----': '0'
}
@converted = gets.chomp().gsub(/\w/, morse_code)
end
puts convert(@converted)
uj5u.com熱心網友回復:
您正在morse_code使用哈希重新定義引數,因此您的引數毫無用處。用于 =>將字串作為哈希中的鍵,例如{ 'key' => 'value' }
最后,它看起來更好:
MORSE_CODE_TO_NUMBERS = {
'.----' => 1, '..---' => 2,
'...--' => 3, '....-' => 4,
'.....' => 5, '-....' => 6,
'--...' => 7, '---..' => 8,
'----.' => 9, '-----' => 0
}
def convert_numbers_to_morse
puts 'Enter your morse phrase:'
msg = gets
word_array = msg.split
word_array_converted = word_array.map{|code| MORSE_CODE_TO_NUMBERS[code]}
word_array_converted.join(' ')
end
puts convert_numbers_to_morse
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/374985.html
標籤:红宝石
