2016-06-14 3 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

Вы можете использовать Regexp

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 
Смежные вопросы