当我们年轻的时候,我的朋友和我有自己的秘密语言。最近他挑战我做一个翻译,这样我就可以输入一个单词,然后把它转换成正确的单词。这很愚蠢,但它只是为了好玩。
我遇到的问题是转换后的字输出是在不同的行上。
应该做什么:
要翻译的词语:Banana
翻译过的词:ananabang
它的作用:
要翻译的词语:Banana
翻译的字:
阿纳纳
砰
这是我写的代码。
puts "Enter word to translate \n \n"
input = gets
firstCharacter = input[0].chr
ang = "ang"
if firstCharacter =~ /\A(a|b|c|d|A|B|C|D)\Z/
input.slice!(0)
puts firstCharacter + input + "ang"
end
我想知道是否有人可以帮我解决输出问题..?
由于
编辑:使用gets.chomp修复此问题。
答案 0 :(得分:4)
gets
返回输入的字符串,并在结尾处添加换行符。如果您将第二行更改为input = gets.chomp
,它将按预期工作,因为chomp
会删除尾随换行符。
答案 1 :(得分:1)
您还可以将代码重构为更简洁明了的内容:
print "Enter word to translate: "
word = gets.chomp.downcase
puts word.sub(/^(.)/, '') << "#{$1}ang"
或者稍微冗长一点:
print "Enter word to translate: "
word = gets.chomp.downcase
translation = word[1,1000] << word[0,1]
translation << 'ang'
puts translation
在Ruby中有很多方法可以做任何事情,当你创造一些更简单,更易于维护的东西时,往往会退后一步,考虑你是否过度工程化。