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.
Matteo P. (Guest)
on 2009-05-18 21:56
Attachment: Nuovo_Ruby_Program__6_.rb (0 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..
Pierpaolo S. (Guest)
on 2009-05-18 22: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 P. <removed_email_address@domain.invalid> 
ha
scritto:
Matteo P. (Guest)
on 2009-05-18 23:24
Grazie mille per la risposta..
Ho provato ad utilizzare .strip ma non sembra funzionare.. Non riesco a
capire perchè..
Davide Monfrecola (Guest)
on 2009-05-19 01:34
(Received via mailing list)
On Mon, 2009-05-18 at 21:24 +0200, Matteo P. 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
Matteo P. (Guest)
on 2009-05-19 16:04
> Prova ad utilizzare:
> b=gets.chomp

Avevo già provato ma non mi funziona neanche .chomp..
Giampiero Z. (Guest)
on 2009-05-19 19: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
Matteo P. (Guest)
on 2009-05-19 23:25
Giampiero Z. 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..
Giampiero Z. (Guest)
on 2009-05-21 19:07
Matteo P. 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.