Uma string é o tipo de dados de JavaScript para armazenar dados de texto.
Crias uma string ao envolver o texto em aspas simples ou aspas duplas. No Exercism, usamos aspas simples.
'Hello, World!'
"Hello, World!"
Podemos tratar uma string como uma lista de carateres em que o primeiro caráter tem o índice 0.
Podes aceder a um caráter individual da string com parênteses retos ([]) e o índice da letra que queres obter.
'cat'[1];
// => 'a'
Podes determinar o número de carateres de uma string acedendo à propriedade length.
'cat'.length;
// => 3
A forma mais simples de concatenar strings é usar o operador de adição +.
'I like' + ' ' + 'cats.';
// => "I like cats."
As strings disponibilizam muitos métodos auxiliares; consulta a documentação da MDN sobre métodos de string para veres a lista completa. A lista seguinte mostra alguns auxiliares usados com frequência.
toUpperCase e toLowerCase - alteram as maiúsculas e minúsculas de todos os caraterestrim - remove os espaços em branco no início e no fimincludes, startsWith e endsWith - determinam se outra string faz parte da string dadaslice - extrai uma secção da stringEm JavaScript, as strings são imutáveis. Por isso, uma "modificação", por exemplo através de alguns dos métodos acima, cria sempre uma nova string.
Abriu um novo clube de poesia na cidade e estás a pensar ir. Como já houve incidentes no passado, o clube tem uma política de acesso à porta muito específica que tens de dominar antes de tentares entrar.
No clube de poesia há duas portas, uma da frente e uma de trás, e ambas estão vigiadas. Para entrares, tens de descobrir a palavra-passe do dia.
A palavra-passe é sempre baseada num poema e pode ser obtida num processo de dois passos.
Os detalhes do processo dependem da porta por onde estás a tentar entrar.
Para determinares as letras da palavra-passe da porta da frente, tens de responder com a primeira letra do verso do poema que o guarda te recita.
Para obterem uma palavra-passe bonita, os membros do clube de poesia gostam de usar poemas acrósticos. Isto significa que a primeira letra de cada frase forma uma palavra. Eis um exemplo de um dos seus escritores favoritos, Michael Lockwood.
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Por isso, quando o guarda recita Stands so high, respondes S; quando o guarda recita Huge hooves too, respondes H.
Implementa a função frontDoorResponse, que recebe um verso do poema como argumento e devolve a primeira letra desse verso.
frontDoorResponse('Stands so high');
// => "S"
Agora que tens todas as letras corretas, para obteres a palavra-passe da porta da frente só precisas de capitalizar a palavra corretamente.
Implementa a função frontDoorPassword, que aceita uma string (as letras combinadas que encontraste na tarefa 1) e devolve-a com a capitalização correta.
frontDoorPassword('SHIRE');
// => "Shire"
frontDoorPassword('shire');
// => "Shire"
Para determinares as letras da palavra-passe da porta de trás, tens de responder com a última letra do verso do poema que o guarda te recita.
Os membros do clube de poesia são mesmo espertos. O poema mencionado antes também é um telesticho, o que significa que a última letra de cada frase também forma uma palavra:
Stands so high
Huge hooves too
Impatiently waits for
Reins and harness
Eager to leave
Quando o guarda recita Stands so high, respondes h; quando o guarda recita Huge hooves too, respondes o.
Repara que, por vezes, o guarda faz pausas estilísticas (sob a forma de espaços em branco) no início ou no fim de um verso. Tens de ignorar essas pausas para obteres a letra correta.
Implementa a função backDoorResponse, que recebe um verso do poema como argumento e devolve a última letra desse verso que não seja um caráter de espaço em branco.
backDoorResponse('Stands so high');
// => "h"
backDoorResponse('Stands so high ');
// => "h"
Para entrares no clube de poesia pela porta de trás, tens de ser muito educado.
Por isso, para obteres a palavra-passe, desta vez tens de capitalizar a palavra corretamente e acrescentar ', please' no fim.
Implementa a função backDoorPassword, que aceita uma string (as letras combinadas que encontraste na tarefa 3) e devolve a versão educada da palavra-passe capitalizada.
backDoorPassword('horse');
// => "Horse, please"
Inscreve-te no Exercism para aprenderes e dominares JavaScript com 37 conceitos159 exercícios, e mentoria humana real, tudo grátis.