String ha diversi metodi che si possono usare per manipolare le stringhe.
Questi metodi vengono chiamati sulla stringa stessa e spesso vengono concatenati tra loro per eseguire più operazioni su una stringa.
Di seguito trovi un elenco di alcuni dei metodi più comuni.
Consulta la documentazione dell'API di String per un elenco completo dei metodi.
Il metodo upcase restituisce una nuova stringa con tutti i caratteri convertiti in maiuscolo.
"hello".upcase
# => "HELLO"
Il metodo downcase restituisce una nuova stringa con tutti i caratteri convertiti in minuscolo.
"HELLO".downcase
# => "hello"
Crystal ha dei metodi per sostituire parti di una stringa.
Sono noti come sub (sostituzione) e gsub (sostituzione globale).
Questi metodi possono accettare una stringa, un char o una regex come primo argomento e una stringa o un char come secondo argomento.
Il primo argomento è la parte della stringa che verrà sostituita, il secondo è la sostituzione.
Char e le regex verranno spiegati nei concetti successivi.
Il metodo sub sostituisce la prima occorrenza del primo argomento con il secondo argomento.
"hello".sub("l", "r")
# => "herlo"
Il metodo gsub funziona come sub, ma sostituisce tutte le occorrenze del primo argomento con il secondo argomento.
"hello".gsub("l", "r")
# => "herro"
Chomp e strip si possono usare per rimuovere caratteri indesiderati da una stringa.
Per impostazione predefinita, il metodo chomp rimuove gli ultimi caratteri \r, \n o \r\n da una stringa.
Se il metodo viene chiamato con un argomento, rimuove il valore dato dalla fine della stringa, se questo è presente alla fine della stringa.
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
Per impostazione predefinita, il metodo strip rimuove tutti gli spazi bianchi all'inizio e alla fine di una stringa.
Se il metodo viene chiamato con un argomento, rimuove quell'argomento dall'inizio e dalla fine della stringa, se è presente all'inizio o alla fine della stringa.
" hello ".strip
# => "hello"
Il metodo index si può usare per trovare l'indice di un carattere in una stringa.
Il metodo index accetta una String, un Char o una regex come argomento.
Può accettare un secondo argomento opzionale per specificare l'indice da cui iniziare la ricerca.
Il metodo index restituisce l'indice della prima occorrenza dell'argomento.
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
Puoi usare il metodo delete_at per rimuovere un carattere da una stringa.
Il metodo delete_at accetta un indice come argomento e rimuove il carattere che si trova a quell'indice.
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
Il metodo insert si può usare per inserire una stringa in un indice specifico.
Il metodo insert accetta un indice come primo argomento e una stringa come secondo argomento.
Il metodo insert restituisce una nuova stringa con il secondo argomento inserito all'indice indicato.
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
In questo esercizio, aiuterai due fidanzatini del liceo a dichiarare il loro amore sui social media generando un cuore ASCII con le loro iniziali:
❤ J. + M. ❤
Implementa il metodo HighSchoolSweetheart.clean_up_name.
Dovrebbe prendere un nome, rimuovere tutti i caratteri - e sostituirli con uno spazio.
Dovrebbe anche rimuovere gli spazi bianchi all'inizio e alla fine del nome.
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
Implementa il metodo HighSchoolSweetheart.first_letter.
Dovrebbe prendere un nome e restituirne la prima lettera.
Assicurati di riutilizzare HighSchoolSweetheart.clean_up_name, che hai definito nel passaggio precedente.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implementa il metodo HighSchoolSweetheart.initial.
Dovrebbe prendere un nome e restituirne la prima lettera, in maiuscolo, seguita da un punto.
Assicurati di riutilizzare HighSchoolSweetheart.first_letter, che hai definito nel passaggio precedente.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implementa il metodo HighSchoolSweetheart.pair.
Dovrebbe prendere due nomi e restituire le iniziali circondate dai cuori emoji.
Assicurati di riutilizzare HighSchoolSweetheart.initial, che hai definito nel passaggio precedente.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Iscriviti a Exercism per imparare e padroneggiare Crystal con 26 concetti142 esercizi e il mentoring di persone reali, tutto gratis.