Forum: Italian Ruby user group aiuto problema variabile==elemento array.to_s

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
618ca7811dc4d08062573a0aaff7ce70?d=identicon&s=25 Matteo Pozza (ruby_92)
on 2009-05-18 19:56
Attachment: Nuovo_Ruby_Program__6_.rb (361 Bytes)
Ho iniziato da poco a programmare in ruby..
Ho creato un programma che deve vedere se una lettera scelta da me è
contenuta in una parola.
Il programma funziona bene, ma non riesco a far funzionare un passaggio
particolare:
Se confronto una lettera contenuta in un array con una inserita da me,
anche se sono identiche restituisce sempre false al posto di true..

(passaggio del programma semplificato:
A=["c", "a", "s", "a"]
b=gets.to_s
if A[0].to_s==b
puts "si"
else
puts "no"
end

In questo caso se eseguo il programma e a b assegno il valore c otterrò
comunque no.
Ho provato anche ad utilizzare to_s in vari passaggi per fare il
confronto ma non funziona..
Potreste aiutarmi??
Grazie in anticipo e scusate per il disturbo..
Vi lascio anche il programma completo, anche se è ancora solo una
prova..
Eaf76558277bad82dcf2405a36208eca?d=identicon&s=25 Pierpaolo Sanna (Guest)
on 2009-05-18 20:05
(Received via mailing list)
Ciao,
a quanto pare gets aggiunge un \n alla stringa che inserisci.
sostituisci
b=gets.to_s con
b=gets.strip


Il giorno 18 maggio 2009 19.56, Matteo Pozza <the.pozz@hotmail.it> ha
scritto:
618ca7811dc4d08062573a0aaff7ce70?d=identicon&s=25 Matteo Pozza (ruby_92)
on 2009-05-18 21:24
Grazie mille per la risposta..
Ho provato ad utilizzare .strip ma non sembra funzionare.. Non riesco a
capire perchè..
Afb380f6c9adae5d99b582a4a36b1484?d=identicon&s=25 Davide Monfrecola (Guest)
on 2009-05-18 23:34
(Received via mailing list)
On Mon, 2009-05-18 at 21:24 +0200, Matteo Pozza wrote:
> Grazie mille per la risposta..
> Ho provato ad utilizzare .strip ma non sembra funzionare.. Non riesco a
> capire perchè..

Prova ad utilizzare:
b=gets.chomp

http://www.ruby-doc.org/core/classes/String.html#M000834
618ca7811dc4d08062573a0aaff7ce70?d=identicon&s=25 Matteo Pozza (ruby_92)
on 2009-05-19 14:04
> Prova ad utilizzare:
> b=gets.chomp

Avevo già provato ma non mi funziona neanche .chomp..
64aa4b69fdd7127e6f3ee16ae065a620?d=identicon&s=25 Giampiero Zanchi (giampiz)
on 2009-05-19 17:12
così a me funziona

A = ["c", "a", "s", "a"]
p "Immetti un carattere"
b = gets.to_s.chomp.downcase
p A[0] == b ? "Si" : "No"

ho aggiunto un downcase finale per asicurarmi di accettare anche una c
maiuscola
618ca7811dc4d08062573a0aaff7ce70?d=identicon&s=25 Matteo Pozza (ruby_92)
on 2009-05-19 21:25
Giampiero Zanchi wrote:
> così a me funziona
>
> A = ["c", "a", "s", "a"]
> p "Immetti un carattere"
> b = gets.to_s.chomp.downcase
> p A[0] == b ? "Si" : "No"
>
> ho aggiunto un downcase finale per asicurarmi di accettare anche una c
> maiuscola

Grazie mille!!
Così funziona perfettamente anche copiando le righe nel programma
completo che ho creato..
64aa4b69fdd7127e6f3ee16ae065a620?d=identicon&s=25 Giampiero Zanchi (giampiz)
on 2009-05-21 17:07
Matteo Pozza wrote:

>> b = gets.to_s.chomp.downcase

per inciso, il to_s è del tutto inutile;
la gets rende sempre una stringa;
casomai può essere necessario trasformare la stringa in qualcosaltro, ad
esempio, se attendi in input un numero ...

n = gets.chomp.to_i

precisazione dovuta
ciao
This topic is locked and can not be replied to.