Trilhas
/
Crystal
Crystal
/
Exercícios
/
Namorada do ensino médio
Namorada do ensino médio

Namorada do ensino médio

Exercício de aprendizagem

Introdução

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.

String#upcase & String#downcase

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"

String#sub & String#gsub

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"

String#chomp & String#strip

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"

String#index

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

String#delete_at

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"

String#insert

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"

Instruções

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. ❤

1. Limpe o nome

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"

2. Obtenha a primeira letra do nome

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"

3. Formate a primeira letra como uma inicial

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."

4. Coloque as iniciais dentro do coração

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. ❤"
Editar via GitHub O link abre em uma nova janela ou aba
Crystal Exercism

Tudo pronto para começar Namorada do ensino médio?

Crie sua conta no Exercism para aprender e dominar Crystal com 26 conceitos142 exercícios e mentoria humana de verdade, tudo de graça.