A String tem vários métodos que podem ser usados para manipular strings.
Estes métodos são chamados na própria string e são frequentemente encadeados para realizar várias operações sobre uma string.
A seguinte é uma lista de alguns dos métodos mais comuns.
Consulta a documentação da API de String para uma lista completa de métodos.
O método upcase devolve uma nova string com todos os carateres convertidos em maiúsculas.
"hello".upcase
# => "HELLO"
O método downcase devolve uma nova string com todos os carateres convertidos em minúsculas.
"HELLO".downcase
# => "hello"
O Crystal tem métodos para substituir partes de uma string.
São conhecidos como sub (substituição) e gsub (substituição global).
Estes métodos podem receber uma string, um char ou uma regex como primeiro argumento e uma string ou um char como segundo argumento.
O primeiro argumento é a parte da string que vai ser substituída, e o segundo é a substituição.
Char e regex serão explicados em conceitos posteriores.
O método sub substitui a primeira ocorrência do primeiro argumento pelo segundo argumento.
"hello".sub("l", "r")
# => "herlo"
O método gsub funciona da mesma forma que o sub, mas substitui todas as ocorrências do primeiro argumento pelo segundo argumento.
"hello".gsub("l", "r")
# => "herro"
Os métodos chomp e strip podem ser usados para remover carateres indesejados de uma string.
O método chomp remove, por predefinição, os últimos carateres \r, \n ou \r\n de uma string.
Se o método for chamado com um argumento, remove o valor dado do fim da string, caso este exista no fim da string.
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
Por predefinição, o método strip remove todos os espaços em branco do início e do fim de uma string.
Se o método for chamado com um argumento, remove esse argumento do início e do fim da string, caso este exista no início ou no fim da string.
" hello ".strip
# => "hello"
O método index pode ser usado para encontrar o índice de um caráter numa string.
O método index recebe uma String, um Char ou uma regex como argumento.
Pode receber um segundo argumento opcional para especificar o índice a partir do qual procurar.
O método index devolve o índice da primeira ocorrência do argumento.
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
Podes usar o método delete_at para remover um caráter de uma string.
O método delete_at recebe um índice como argumento e remove o caráter nesse índice.
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
O método insert pode ser usado para inserir uma string num índice específico.
O método insert recebe um índice como primeiro argumento e uma string como segundo argumento.
O método insert devolve uma nova string com o segundo argumento inserido no índice.
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
Neste exercício, vais ajudar namorados do liceu a declarar o seu amor nas redes sociais, gerando um coração em ASCII com as iniciais deles:
❤ J. + M. ❤
Implementa o método HighSchoolSweetheart.clean_up_name.
Deve receber um nome e remover todos os carateres -, substituindo-os por um espaço.
Deve também remover os espaços em branco no início e no fim do nome.
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
Implementa o método HighSchoolSweetheart.first_letter.
Deve receber um nome e devolver a sua primeira letra.
Certifica-te de que reutilizas o HighSchoolSweetheart.clean_up_name que definiste no passo anterior.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implementa o método HighSchoolSweetheart.initial.
Deve receber um nome e devolver a sua primeira letra, em maiúscula, seguida de um ponto.
Certifica-te de que reutilizas o HighSchoolSweetheart.first_letter que definiste no passo anterior.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implementa o método HighSchoolSweetheart.pair.
Deve receber dois nomes e devolver as iniciais com corações emoji à volta.
Certifica-te de que reutilizas o HighSchoolSweetheart.initial que definiste no passo anterior.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Inscreve-te no Exercism para aprenderes e dominares Crystal com 26 conceitos142 exercícios, e mentoria humana real, tudo grátis.