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.
À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.
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.
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"
Modifique o método (static) Identifier.Clean() para substituir caracteres de controle pela string "CTRL" em maiúsculas.
Identifier.Clean("my\0Id");
// => "myCTRLId",
Modifique o método (static) Identifier.Clean() para converter kebab-case em camelCase.
Identifier.Clean("à-ḃç");
// => "àḂç"
Modifique o método (static) Identifier.Clean() para omitir qualquer caractere que não seja letra.
Identifier.Clean("1😀2😀3😀");
// => ""
Modifique o método (static) Identifier.Clean() para omitir qualquer letra grega no intervalo de 'α' a 'ω'.
Identifier.Clean("MyΟβιεγτFinder");
// => "MyΟFinder"
Crie sua conta no Exercism para aprender e dominar C# com 62 conceitos178 exercícios e mentoria humana de verdade, tudo de graça.