Es ist keine große Sache, Code in Ruby zu schreiben, aber ich habe ihn übersehen und war begeistert.
Ich dachte, ich wüsste, dass get am Ende einen Zeilenvorschubcode hat und gets.chomp keinen Zeilenvorschubcode hat, aber ...
input = gets
array=['cat','cat1','cat2','cat3','dog','tomcat']
array.each do |a|
puts a.include?(input)
end
Dann kehren alle mit false zurück. Wie ich am Anfang geschrieben habe, hat get am Ende einen Zeilenvorschubcode, daher sucht die include? -Methode nach einer Übereinstimmung mit cat plus Zeilenvorschubcode, sodass sie falsch ist.
input = gets
array=[]
for i in 1..6 do
array_input=gets
array << array_input
end
array.each do |a|
puts a.include?(input)
end
Wenn Sie cat, cat1, ... und dieselben Elemente wie das obige Code-Array der Reihe nach eingeben, werden nur das erste und das letzte (cat und tomcat) als true zurückgegeben. (Ich war süchtig danach) Dies bedeutet, dass, wenn der eingegebene Wert in dem Teil eingeht, der in der for-Anweisung gedreht wird, mit cat endet, der Zeilenvorschubcode am Ende eingefügt wird, damit er übereinstimmt. Alles, was nicht mit Katze endet, wird als inkonsistent erkannt.
Wenn Sie input = gets.chomp setzen, wird der Zeilenvorschubcode nicht in die erste Eingabezeichenfolge aufgenommen, sodass das beabsichtigte Ergebnis erhalten wird.
input = gets.chomp
array=['cat','cat1','cat2','cat3','dog','tomcat']
array.each do |a|
puts a.include?(input)
end
Recommended Posts