Quand je l'ai comparé avec la chaîne de caractères de l'entrée standard, cela n'a pas fonctionné pour une raison quelconque. La cause et la solution sont décrites dans un mémorandum.
La méthode gets
est une méthode pour recevoir une chaîne de caractères à partir d'une entrée standard.
Si vous essayez de comparer une chaîne d'entrée obtenue à l'aide de cette méthode avec une autre chaîne
Je n'ai pas obtenu les résultats escomptés.
input = gets #Entrez hoge
bool = (input == 'hoge')
print bool
false
Je devrais comparer des chaînes avec la même valeur, mais pour une raison quelconque, «false» est renvoyé.
Après vérification, il semble que la méthode gets
ajoute le ** code de saut de ligne (\ n) ** à la fin par défaut.
input = puts #Entrez hoge
p input
"hoge\n"
J'essayais de comparer avec le code de saut de ligne inclus, donc il semble qu'il a été joué même si je l'ai comparé.
Il semble que je devrais supprimer le code de saut de ligne à la fin, alors je l'ai vérifié,
Il existe une méthode chomp
comme méthode pour cela,
Quand j'ai utilisé ceci, j'ai obtenu le résultat attendu!
input = gets.chomp #Entrez hoge
bool = (input == 'hoge')
print bool
true
Je pensais que «chomp» était une abréviation pour quelque chose, et quand je l'ai recherchée, la réponse en teratail était utile. Que signifie chomp?
Il contient beaucoup de spéculations À l'origine, il y avait du hachage et j'ai pu effacer le dernier caractère. C'était une manière (Unix) que la fin du fichier texte se termine par un saut de ligne, donc c'était bien. Il y a un problème qu'il n'y a pas de saut de ligne à la fin et il y a des environnements où ce n'est pas un seul caractère Une fonction "supprimer les pauses de fin" a été ajoutée et elle est maintenant chomp car elle est destinée au hachage multiligne.
Il semble que la méthode chomp
soit utilisée pour supprimer le code de saut de ligne du dernier caractère de chop
.
https://stackoverflow.com/questions/21504202/why-is-stringchomp-named-like-this
Recommended Posts