Limpinho

Limpinho

Exercício de aprendizagem

Introdução

Caracteres

O tipo char do C# é uma quantidade de 16 bits que representa os menores componentes endereçáveis do texto. Vários chars podem compor uma string como "word", ou chars podem ser processados individualmente. Seus literais usam aspas simples, por exemplo, 'A'.

Os chars do C# têm suporte à codificação Unicode UTF-16, então, além do conjunto de caracteres latinos, praticamente todos os sistemas de escrita usados no mundo podem ser representados, por exemplo, a letra grega 'β'.

Existem muitos métodos na biblioteca padrão para inspecionar e manipular chars. Eles estão disponíveis como métodos estáticos da classe System.Char.

StringBuilder

Às vezes, chars são usados em conjunto com um objeto StringBuilder. Esse objeto tem métodos que permitem construir uma string caractere por caractere e manipulá-la. No fim do processo, é possível chamar ToString nele para gerar uma string completa.

Instruções

Neste exercício, você vai implementar um conjunto parcial de rotinas utilitárias para ajudar uma pessoa desenvolvedora a limpar nomes de identificadores. Nas 5 tarefas, você vai construir aos poucos a rotina Clean. Um identificador válido é composto por zero ou mais letras e sublinhados. Em todos os casos, a string de entrada tem garantia de não ser nula. Se uma string vazia for passada para a função Clean, uma string vazia deve ser retornada. Repare que quem chama a rotina Clean deve evitar passar um identificador vazio, já que esses identificadores não têm efeito.

1. Substitua qualquer espaço encontrado por sublinhados

Implemente o método (static) Identifier.Clean() para substituir qualquer espaço por sublinhados. Isso também vale para espaços no início e no fim.

Identifier.Clean("my   Id");
// => "my___Id"

2. Substitua caracteres de controle pela string "CTRL" em maiúsculas

Modifique o método (static) Identifier.Clean() para substituir caracteres de controle pela string "CTRL" em maiúsculas.

Identifier.Clean("my\0Id");
// => "myCTRLId",

3. Converta kebab-case em camelCase

Modifique o método (static) Identifier.Clean() para converter kebab-case em camelCase.

Identifier.Clean("à-ḃç");
// => "àḂç"

4. Omita caracteres que não são letras

Modifique o método (static) Identifier.Clean() para omitir qualquer caractere que não seja letra.

Identifier.Clean("1😀2😀3😀");
// => ""

5. Omita letras gregas minúsculas

Modifique o método (static) Identifier.Clean() para omitir qualquer letra grega no intervalo de 'α' a 'ω'.

Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"
Editar via GitHub O link abre em uma nova janela ou aba
C# Exercism

Tudo pronto para começar Limpinho?

Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.