Ruby:
Merkkijonosta lainausmerkkien poistaminen
Kuinka:
Rubylla on muutama kätevä temppu hihassaan näiden kiusallisten lainausmerkkien leikkaamiseksi. Voit käyttää gsub
- tai delete
-metodeja tehtävän hoitamiseen. Tässä on hieman koodia purtavaksi:
# Käyttäen gsub poistaaksesi kaksois- ja yksinkertaiset lainausmerkit
quoted_string = "\"Say 'hello' to my little friend!\""
unquoted_string = quoted_string.gsub(/'|"/, '')
puts unquoted_string
# Tuloste: Say hello to my little friend!
# Jos tiedät käsitteleväsi vain yhtä tyyppiä lainausmerkkiä
single_quoted_string = "'Stay a while and listen!'"
clean_string = single_quoted_string.delete("'")
puts clean_string
# Tuloste: Stay a while and listen!
Syväsukellus
Lainausmerkkien historia kietoutuu ohjelmoinnin alkuaikoihin, jolloin ne usein toimivat merkkijonojen rajaimina. Nykyään, kuten silloinkin, saattaa tulla tilanteita, joissa sinun on poistettava nämä lainausmerkit, kun ne eivät ole tarpeen tai kun ne voisivat häiritä tietojen tallennusta ja käsittelyä.
Olemme puhuneet gsub
- ja delete
-metodeista, mutta on muitakin metodeja, kuten tr
tai tr_s
, jotka antavat sinulle hieman enemmän kontrollia tai voivat käsitellä joitakin erilaisia käyttötapauksia:
# tr voi myös poistaa lainausmerkit
double_quoted_string = "\"Do or do not, there is no try.\""
clean_string = double_quoted_string.tr('\"', '')
puts clean_string
# Tuloste: Do or do not, there is no try.
Muista, että kullakin näistä metodeista on käyttötapauksensa. gsub
on voimakkaampi, kun käsittelet monimutkaisia malleja tai useita korvauksia. delete
ja tr
toimivat kauniisti yksinkertaisten, suoraviivaisten merkkien poistojen kanssa.
Katso myös
Lisäluettavaksi ja nähdäksesi nämä metodit toiminnassa suuremmissa koodikannoissa, tutustu:
- Rubyn dokumentaatioon String#gsub, String#delete ja String#tr.
- Ruby Monstasilla on loistava String-harjoitussarja, joka sisältää tehtäviä lainausmerkkien kanssa työskentelystä.
- Stack Overflow -keskustelut merkkijonon manipuloinnista tarjoavat todellisen maailman ongelmia ja ratkaisuja toisilta Rubyisteilta.