Miten merkkijonossa voi korvata tietyn merkin toisella merkkijonolla?
Esim: "test" => "test"
Ja lopputulos olisi:
"Tämä on testilause testausta varteen" => "Tämä on testilause testausta varteen"
Esim: "test" => "test"
Ja lopputulos olisi:
"Tämä on testilause testausta varteen" => "Tämä on testilause testausta varteen"
Vastaukset 4
Vanhimmat
Et sitten manuaalista ajatellut katsoa?
Vinkki: Ruby on puhdasverinen oliokieli, ja kaikki Rubyssa koostuu olioista. Merkkijonot ovat Rubyssa luokan String olioita. Jokaisella oliolla on luonnollisesti joukko metodeja, joilla kyseisen olion tilaa voidaan muuttaa.
Nyt pitäisi siis löytää String-luokan metodi, joka korvaa osan olion sisällöstä toisella.
Kaikkien Rubyn perusluokkien metodit on lueteltu manuaalissa:
http://www.ruby-doc.org/core/
Vielä tarkemmin, String-luokan metodit on lueteltu täällä:
http://www.ruby-doc.org/core/classes/String.html
Sieltä löytyy metodi gsub, jolla on seuraavanlainen syntaksi:
str.gsub(pattern, replacement) => new_str
Siinä siis vastaus. Jos vielä haluat soveltaa sitä tuohon esimerkkisii, niin se tapahtuu näin:
puts "test".gsub(/test/, 'test');
Tämä siis tulostaisi:
test
En saa toimimaan, jos korvattava merkkijono on muuttujassa.
Kovakoodattuna tämä toimii, mutta esim tämä ei:
@merkkijono = 'Tämä on testilause testausta varteen'
@hakusana = 'test'
[email protected](/@hakusana/, '@hakusana');
aaapuvaa???
puts @merkkijono.gsub(@hakusana, "#{@hakusana}")