51 votes

Tableau insensible à la casse#include ?

Je veux savoir quelle est la meilleure façon de faire en sorte que les String.include? ignorent la casse. Actuellement, je fais ce qui suit. Aucune suggestion? Merci!

 a = "abcDE"
b = "CD"
result = a.downcase.include? b.downcase

Éditer: Que diriez-vous de Array.include? . Tous les éléments du tableau sont des chaînes.

12voto

farnoy Points 1410

Pour un tableau, utilisez :

 array.map(&:downcase).include?(string)

Les expressions régulières sont très lentes et doivent être évitées.

7voto

Aaron McIver Points 16766

Vous pouvez utiliser casecmp pour faire votre comparaison, en ignorant la casse.

 "abcdef".casecmp("abcde")     #=> 1
"aBcDeF".casecmp("abcdef")    #=> 0
"abcdef".casecmp("abcdefg")   #=> -1
"abcdef".casecmp("ABCDEF")    #=> 0

4voto

johannes Points 3878
class String
    def caseinclude?(x)
        a.downcase.include?(x.downcase)
    end
end

3voto

Konda Reddy R Points 73

mon_tableau.map !{|c| c.downcase.strip}

map! modifie my_array, map renvoie à la place un nouveau tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X