String tem vários métodos que podem ser usados para manipular strings.
Esses métodos são chamados na própria string e muitas vezes encadeados para realizar várias operações sobre ela.
A seguir está uma lista de alguns dos métodos mais comuns.
Consulte a documentação da API de String para ver a lista completa de métodos.
O método upcase retorna uma nova string com todos os caracteres convertidos para maiúsculas.
"hello".upcase
# => "HELLO"
O método downcase retorna uma nova string com todos os caracteres convertidos para minúsculas.
"HELLO".downcase
# => "hello"
Crystal tem métodos para substituir partes de uma string.
Eles são conhecidos como sub (substituição) e gsub (substituição global).
Esses métodos podem receber uma string, um caractere ou um regex como primeiro argumento e uma string ou um caractere como segundo argumento.
O primeiro argumento é a parte da string que será substituída, e o segundo argumento é 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 igual ao sub, mas substitui todas as ocorrências do primeiro argumento pelo segundo argumento.
"hello".gsub("l", "r")
# => "herro"
Chomp e strip podem ser usados para remover caracteres indesejados de uma string.
Por padrão, o método chomp remove os últimos caracteres \r, \n ou \r\n de uma string.
Se o método for chamado com um argumento, ele remove o valor dado do final da string.
Se esse valor existir no final da string.
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
Por padrão, o método strip remove todos os espaços em branco do início e do final de uma string.
Se o método for chamado com um argumento, ele remove esse argumento do início e do final da string.
Se esse valor existir no início ou no final da string.
" hello ".strip
# => "hello"
O método index pode ser usado para encontrar o índice de um caractere em uma string.
O método index recebe uma String, um Char ou um regex como argumento.
Ele pode receber um segundo argumento opcional para especificar o índice a partir do qual buscar.
O método index retorna o índice da primeira ocorrência do argumento.
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
Você pode usar o método delete_at para remover um caractere de uma string.
O método delete_at recebe um índice como argumento e remove o caractere nesse índice.
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
O método insert pode ser usado para inserir uma string em um índice específico.
O método insert recebe um índice como primeiro argumento e uma string como segundo argumento.
O método insert retorna uma nova string com o segundo argumento inserido no índice.
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
Neste exercício, você vai ajudar namorados do ensino médio a declarar seu amor nas redes sociais gerando um coração em ASCII com a inicial deles:
❤ J. + M. ❤
Implemente o método HighSchoolSweetheart.clean_up_name.
Ele deve receber um nome, remover todos os caracteres - e substituí-los por um espaço.
Ele também deve remover qualquer espaço em branco do início e do fim do nome.
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
Implemente o método HighSchoolSweetheart.first_letter.
Ele deve receber um nome e retornar sua primeira letra.
Certifique-se de reutilizar o método HighSchoolSweetheart.clean_up_name que você definiu na etapa anterior.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Implemente o método HighSchoolSweetheart.initial.
Ele deve receber um nome e retornar sua primeira letra, em maiúscula, seguida de um ponto.
Certifique-se de reutilizar o método HighSchoolSweetheart.first_letter que você definiu na etapa anterior.
HighSchoolSweetheart.initial("Robert")
# => "R."
Implemente o método HighSchoolSweetheart.pair.
Ele deve receber dois nomes e retornar as iniciais com corações em emoji ao redor.
Certifique-se de reutilizar o método HighSchoolSweetheart.initial que você definiu na etapa anterior.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Crie sua conta no Exercism para aprender e dominar Crystal com 26 conceitos142 exercícios e mentoria humana de verdade, tudo de graça.