2016-06-14 56 views
0

我的任务是检查用户的给定输入是否包含字母"c""s"。我用一个管理,但我根本不知道写这个的正确方法。如何检查数组是否包含X或Y

我知道问题是"s" || "c"

print 'What can we do for you?' 
user_input = gets.chomp 
user_input.downcase! 

if user_input.empty? 
    puts 'Well you will have to write something...!' 
elsif user_input.include? 's' || 'c' 
    puts "We got ourselves some 's's and some 'c's" 
    user_input.gsub!(/s/, 'th') 
    user_input.tr!('c', 's') 
    puts "The Daffy version, #{user_input}!" 
else 
    print "Nope, no 's' or 'c' found" 
end 

回答

2

简单

elsif user_input.include?("s") || user_input.include?("c") 

或类似

%w(s c).any? { |command| user_input.include? command } 
+1

完美的人:)非常感谢!它如此简单,但这让我粘在屏幕上大约一个小时。我昨天刚刚开始了红宝石。 –

2

这是正则表达式都很好,其中一个很好的例子:

user_input =~ /[sc]/ 
0

您可以使用正则表达式

user_input[/s|c/] 
1

或:

(user_input.split('') & %w(s c)).any? 
+2

'user_input'是一个字符串,为了这个工作,我们应该'拆分'它:'(user_input.split('')&%w(s c))any?',但是这种方法是无效的。 – mudasobwa

+0

@mudasobwa是的,你说的对,我的错。 –

+0

@CarySwoveland 我以为我把它删除了 谢谢你提醒我! –

0

没有正则表达式:

user_input.count('sc') > 0 
相关问题