如何显示字符串?

时间:2013-05-23 17:21:23

标签: ruby string math operators

如何让此代码生效?我无法将其puts "+"puts "]"

puts " Enter an option:"
puts "------------------"
puts "1] Learn to FOIL"
puts "2] Learn to factor"
puts "3] Practice!!!!!!!"

input = gets.chomp.gsub[" ", ""]
if input == 1 then
  puts "The FOIL method is used to put together the simplified terms of a polynomial."
  puts "To FOIL, you take the first term of the first set and multiply it by the first"
  puts "and second terms of the second set. Example:"
  puts "   _______"
  puts "  /    \  \"
  puts "[5x+2][10x+4]"
  puts " equals [50x²+20x]"
  puts " "
  puts " WAIT......"
  http://www.youtube.com/watch?v=dQw4w9WgXcQ
else 
  puts "NOT READY!!!!!!!"
end

5 个答案:

答案 0 :(得分:3)

您需要一个带语法高亮显示的编辑器,因此您可以告诉您的字符串未被关闭:

puts "  /    \  \"

您的最终"\转义,意味着该字符串未被关闭。你需要使用另一个反斜杠来逃避反斜杠:

puts "  /    \  \\"

答案 1 :(得分:2)

你需要逃避反斜杠。将第13行更改为

puts "  /    \\  \\"

我认为这可以回答您的问题,但由于第18行的youtube网址仍然存在语法错误。

答案 2 :(得分:2)

更简单地使用单引号:'而非"过滤输入。

答案 3 :(得分:1)

您已在"中转义了" / \ \"个字符。反斜杠将打印后续字符作为字符串的文字部分而不是字符串分隔符。要使用反斜杠作为文字字符,您必须使用另一个反斜杠来转义它。您可以通过使用%q( / \ \ )等字符串文字分隔符来规避所有这些。

答案 4 :(得分:0)

这永远不会奏效:

input = gets.chomp.gsub[" ", ""]
if input == 1 then

gets返回一个字符串:“gets”表示“获取字符串”。这就是chompgsub工作的原因,因为它们是String的方法。

您无法将"1"1进行比较。第一个是String值,第二个是Fixnum。试图这样做会激怒Ruby,它会响应false因为它们不是同一类型的值。

你可以说:

input = gets.chomp.gsub[" ", ""].to_i

或:

if input.to_i == 1 then

或:

if input == '1' then

  http://www.youtube.com/watch?v=dQw4w9WgXcQ

会生成语法错误,因为它不是方法或变量。

也许您希望用户打开浏览器到该URL,或者为用户打开浏览器并将其指向该URL?无论哪种方式,http://www.youtube.com/watch?v=dQw4w9WgXcQ都不会为你做。