用于查看用户输入是否已填写的代码

时间:2017-08-06 13:18:49

标签: ruby

我想检查一个字段是否已填写。我有一个未完成的代码:

print "What is your name?"
user_input = gets.chomp.upcase

if user_input = ??
  print "Nice to meet you user_input!"
else 
  puts "Please enter your name."
end

如何完成代码才能完成?

3 个答案:

答案 0 :(得分:0)

问题中缺少很多背景信息,但有一些事情可能会对您有所帮助。

  1. 基本检查它是否为空:

    if user_input.nil? || user_input.empty?
        # Ask the user to try again
    end
    
  2. 检查它是否与您使用正则表达式指定的模式匹配(请参阅https://ruby-doc.org/core-2.1.1/Regexp.html)。例如:

    if user_input =~ /^[[:upper:]][[:lower:]]+/
        # One uppercase character, followed by at least one lowercase
    end
    
  3. 第二种选择有更多的可能性,但这又取决于你的需求。

答案 1 :(得分:0)

在您希望的前提下:

  • 打印消息:"您的名字是什么?"
  • 让用户输入他们的名字并将其存储在user_input变量(使用gets.chomp
  • 输出"很高兴见到你<<用户名>>"或"请输入您的姓名" ,具体取决于输入是否符合特定条件

......我们有一些改变。

第一个是检查的条件,确保输入不是空白,第二个是查看输入是否匹配某个值

首先,在继续之前,检查输入是否为空。我们可以使用String#empty来确保字符串至少包含一个字符(包括空格):

print "What is your name?"
user_input = gets.chomp.upcase

# Check to make sure the input isn't empty
if !user_input.empty?
  print "Nice to meet you user_input!"
else 
  puts "Please enter your name."
end

然后,我们可以检查输入是否符合某些条件。遗憾的是,您的问题并未指定这些条件是什么,因此其他用户建议您可以使用正则表达式来查看它是否与特定模式匹配,或者仅使用硬编码字符串进行比较:

print "What is your name?"
user_input = gets.chomp.upcase

# After making sure the input is empty, check to make sure it matches the string "Bob"
if !user_input.empty? && user.input == "Bob"
  print "Nice to meet you user_input!"
else 
  puts "Please enter your name."
end

最后,代码中有一个错误。一旦用户的输入被验证,输出将始终很好地满足你user_input",即使user_input变量是另一个值。这是因为我们没有正确使用String Interpolation

print "What is your name?"
user_input = gets.chomp.upcase

if !user_input.empty? && user.input == "Bob"
  # When using string interpolation, surround the variable you'd like to print with #{}
  print "Nice to meet you #{user_input}!"
else 
  puts "Please enter your name."
end

正如其他用户所说,您应该考虑更多地调整问题的要求。您可以为这个简单的示例添加大量细节和实验!

答案 2 :(得分:-1)

if user_input.blank?
puts "please enter your name"
else
puts "Nice to met you"
end