作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我两天前才开始研究 Ruby 语言,很快就发现我太局限于 C 派生语言的思维方式了......我正在尝试对字符串进行这样的比较:
def menu_listen
action = gets
while !(action.eql?("up")) && !(action.eql?("down")) && !(action.eql?("close")) do
puts "'#{action}' is not a valid command at this time."
action = gets
end
return action
end
...早先是这样写的:
def main_listen
action = gets
while action != "up" && action != "down" && action != "close" do
puts "'#{action}' is not a valid command at this time."
action = gets
end
return action
end
我在该站点上读到 thisString.eql?(thatString) 与 thisString == thatString 相同,这似乎是因为两者都不起作用。我在命令提示符中输入的任何输入都不会通过 while 循环并给我这样的响应:
'down
' is not a valid command at this time.
那么这是否意味着按下回车键也会在命令提示符输入中存储为一个新行?谁能告诉我如何实现它以便字符串比较正常工作?
最佳答案
gets
也接受 eol 字符,所以使用 gets.chomp
只接受实际的字符串。 chomp
方法会删除您的回车符和换行符。
就字符串比较而言,它更像 ruby,只是比较您的输入是否存在于预定义字符串数组中,而不是链接 &&
和 eql?
,例如:
while not %w(up down close).include? action do
这比链接更简洁,也更容易修改。
关于ruby - 如何将字符串与 Ruby 中的命令提示符输入进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13408301/
我是一名优秀的程序员,十分优秀!