Ruby'sub!'如果/ elsif语句不替换文本

时间:2013-03-24 19:36:56

标签: ruby string replace gsub

这让我疯狂的时间远远超过应有的时间,我正在使用SIMPLE字符串替换,但它根据获取的信息无法替换字符串(在这种情况下,它是'url')。

class Test
  myURL = 'www.google.com'
puts 'Where are you from?'
  location = gets
    if location == 'England'
     myURL['.com'] = '.co.uk'
    elsif location == 'France'
     myURL['.com'] = '.co.fr'
    end
puts myURL
end

我疯了吗?

2 个答案:

答案 0 :(得分:8)

location = gets更改为location = gets.chomp

gets发生了什么事情是它将您输入的所有内容都包含在提示符中,其中包含 Enter 键。所以,如果你输入“英格兰”,那么:

location == "England\n" #=> true
location == "England"   #=> false

String#chomp方法将删除末尾的终止行。

答案 1 :(得分:1)

你只需要这样做:

class Test
    myURL = 'www.google.com'
    puts 'Where are you from?'
    location = gets.chomp
    if location == 'England'
        myURL['.com'] = '.co.uk'
    elsif location == 'France'
        myURL['.com'] = '.co.fr'
    end
    puts myURL
end

原因是gets返回的字符串最后有一个换行符。