Uma string em C# é um objeto que representa texto imutável como uma sequência de carateres Unicode (letras, algarismos, pontuação, etc.). As aspas duplas servem para definir uma instância de string:
string fruit = "Apple";
As strings são manipuladas através dos métodos incorporados da string. Por exemplo, para remover os espaços em branco de uma string, podes usar o método Trim assim:
string name = " Jane "
name.Trim()
// => "Jane"
Uma vez construída, uma string nunca pode mudar de valor. Quaisquer métodos que pareçam modificar uma string devolvem, na verdade, uma nova string.
É possível concatenar (somar) várias strings umas com as outras. A forma mais simples de o fazer é usar o operador +.
string name = "Jane";
"Hello " + name + "!";
// => "Hello Jane!"
Para qualquer formatação de strings mais complexa do que uma simples concatenação, dá-se preferência à interpolação de strings. Para usar interpolação numa string, coloca o símbolo de dólar ($) antes dela. Depois, podes usar chavetas ({}) para aceder a quaisquer variáveis dentro da tua string.
string name = "Jane";
$"Hello {name}!";
// => "Hello Jane!"
Neste exercício vais processar linhas de registo.
Cada linha de registo é uma string formatada da seguinte forma: "[<LEVEL>]: <MESSAGE>".
Existem três níveis de registo diferentes:
INFOWARNINGERRORTens três tarefas, cada uma das quais recebe uma linha de registo e pede-te para fazer algo com ela.
Implementa o método (static) LogLine.Message() para devolver a mensagem de uma linha de registo:
LogLine.Message("[ERROR]: Invalid operation")
// => "Invalid operation"
Qualquer espaço em branco no início ou no fim deve ser removido:
LogLine.Message("[WARNING]: Disk almost full\r\n")
// => "Disk almost full"
Implementa o método (static) LogLine.LogLevel() para devolver o nível de registo de uma linha de registo, que deve ser devolvido em minúsculas:
LogLine.LogLevel("[ERROR]: Invalid operation")
// => "error"
Implementa o método (static) LogLine.Reformat() que reformata a linha de registo e coloca a mensagem primeiro e o nível de registo depois, entre parênteses:
LogLine.Reformat("[INFO]: Operation completed")
// => "Operation completed (info)"
Inscreve-te no Exercism para aprenderes e dominares C# com 62 conceitos178 exercícios, e mentoria humana real, tudo grátis.