Exercício - Descubra o preenchimento e o alinhamento

Concluído

O string.Format() método é usado para executar a formatação composta, como no exemplo:

string first = "Hello";
string second = "World";
string result = string.Format("{0} {1}!", first, second);
Console.WriteLine(result);

Pode ter parecido um pouco estranho que uma palavra-chave que representa um tipo de dados tenha métodos que você pode chamar da mesma maneira que você chama métodos na Console classe. O fato é que existem muitos métodos semelhantes no string tipo de dados e qualquer string literal ou variável do tipo string.

Veja a seguir uma breve lista de categorias destes métodos incorporados para que possa ter uma ideia do que é possível.

  • Métodos que adicionam espaços em branco para fins de formatação (PadLeft(), PadRight())
  • Métodos que comparam duas cadeias de caracteres ou facilitam a comparação (Trim(), TrimStart(), TrimEnd(), GetHashcode(), a Length propriedade)
  • Métodos que ajudam a determinar o que existe dentro de uma cadeia ou até mesmo recuperam apenas uma parte da cadeia (Contains(), StartsWith(), EndsWith()Substring())
  • Métodos que alteram o conteúdo da cadeia ao substituir, inserir ou remover partes (Replace(), Insert(), Remove())
  • Métodos que transformam uma cadeia numa matriz de cadeias ou de carateres (Split(), ToCharArray())

Formatar cadeias ao adicionar espaço em branco antes ou depois

O PadLeft() método adiciona espaços em branco ao lado esquerdo da cadeia de caracteres para que o número total de caracteres seja igual ao argumento enviado. Nesse caso, você deseja que o comprimento total da cadeia de caracteres seja de 12 caracteres.

  1. Exclua ou use o operador // de comentário de linha para comentar todo o código dos exercícios anteriores.

  2. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     string input = "Pad this";
     Console.WriteLine(input.PadLeft(12));
    
  3. No menu Arquivo de código do Visual Studio, selecione Salvar. Salve o arquivo Program.cs antes de criar ou executar o código.

  4. No painel EXPLORER, para abrir um Terminal no local da pasta TestProject, clique com o botão direito do mouse em TestProject e selecione Abrir no Terminal Integrado. Um painel Terminal deve ser aberto e deve incluir um prompt de comando mostrando que o Terminal está aberto para o local da pasta TestProject.

  5. No prompt de comando do Terminal, para executar o código, digite dotnet run e pressione Enter.

    Nota

    Se você vir uma mensagem dizendo "Não foi possível encontrar um projeto para executar", verifique se o prompt de comando do Terminal exibe o local esperado da pasta TestProject. Por exemplo: C:\Users\someuser\Desktop\csharpprojects\TestProject>

    Quando você executa o código, você observa quatro caracteres prefixados à esquerda da cadeia de caracteres trazer o comprimento para 12 caracteres.

     	Pad this
    
  6. Para adicionar espaço ou carateres ano final da cadeia, utilize o método PadRight(). 1. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     Console.WriteLine(input.PadRight(12));
    
  7. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Você não observará nenhum caractere adicionado ao final da cadeia de caracteres, mas eles estão lá.

O que é um método sobrecarregado?

Em C#, um método sobrecarregado é outra versão de um método com argumentos diferentes ou extras que modificam ligeiramente a funcionalidade do método, como é o caso da versão sobrecarregada do PadLeft() método.

Também pode chamar uma segunda versão sobrecarregada do método e transmitir qualquer caráter que queira utilizar em vez de um espaço. Nesse caso, você preenche o espaço extra com o caractere do traço.

  1. Exclua ou use o operador // de comentário de linha para comentar todo o código da etapa anterior.

  2. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     Console.WriteLine(input.PadLeft(12, '-'));
     Console.WriteLine(input.PadRight(12, '-'));
    
  3. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Você deve ver quatro traços prefixando a esquerda da cadeia de caracteres que tem 12 caracteres.

     ----Pad this
     Pad this----
    

Agora, aplique esse conhecimento recém-descoberto a outro cenário do mundo real.

Trabalhando com cadeias de caracteres acolchoadas

Suponha que você trabalhe para uma empresa de processamento de pagamentos que ainda ofereça suporte a sistemas de mainframe legados. Geralmente, estes sistemas exigem a introdução de dados em colunas específicas. Por exemplo, armazene a ID de pagamento nas colunas 1 a 6, o nome do beneficiário nas colunas 7 a 30 e o Valor do pagamento nas colunas 31 a 40. Além disso, é importante ressaltar que o Valor do Pagamento está alinhado corretamente.

Você será solicitado a criar um aplicativo que converterá dados no sistema de gerenciamento de banco de dados relacional para o formato de arquivo herdado. Para garantir que a integração funcione corretamente, a primeira etapa é confirmar o formato do arquivo, fornecendo aos mantenedores do sistema herdado uma amostra da saída. Mais tarde, você aproveita esse trabalho para enviar centenas ou milhares de pagamentos para serem processados por meio de um arquivo de texto ASCII.

Adicionar o ID de pagamento à saída

Para começar, imprima o ID de pagamento nas seis primeiras colunas. Você escolhe alguns dados de pagamento aleatórios que devem ser adequados para as finalidades.

  1. Exclua ou use o operador // de comentário de linha para comentar todo o código da etapa anterior.

  2. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     string paymentId = "769C";
    
     var formattedLine = paymentId.PadRight(6);
    
     Console.WriteLine(formattedLine);
    

    Reutilize a formattedLine variável para criar a cadeia de caracteres de saída.

  3. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Deverá ver o seguinte resultado:

     769C	
    

Há dois espaços em branco à direita que não são visíveis. Você confirmará que eles existem na próxima etapa.

Adicionar o nome do beneficiário à saída

Em seguida, você adiciona um Nome do Beneficiário fictício, preenchendo-o adequadamente.

  1. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     string paymentId = "769C";
     string payeeName = "Mr. Stephen Ortega";
    
     var formattedLine = paymentId.PadRight(6);
     formattedLine += payeeName.PadRight(24);
    
     Console.WriteLine(formattedLine);
    

    O operador += executa uma concatenação da cadeia ao obter o valor anterior da variável formattedLine e adicionar o novo valor a esse valor. É um equivalente abreviado o seguinte exemplo de código:

     formattedLine = formattedLine + payeeName.PadRight(24);
    
  2. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Deverá ver o seguinte resultado:

     769C  Mr. Stephen Ortega
    

Novamente, existem alguns espaços em branco após o Nome do Beneficiário. Além disso, há dois espaços em branco após a ID de pagamento da Etapa 1.

Adicionar o valor do pagamento à saída

Em seguida, adicione um Valor de Pagamento fictício e certifique-se de usar PadLeft() para alinhar corretamente a saída.

  1. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     string paymentId = "769C";
     string payeeName = "Mr. Stephen Ortega";
     string paymentAmount = "$5,000.00";
    
     var formattedLine = paymentId.PadRight(6);
     formattedLine += payeeName.PadRight(24);
     formattedLine += paymentAmount.PadLeft(10);
    
     Console.WriteLine(formattedLine);
    
  2. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Deverá ver o seguinte resultado:

     769C  Mr. Stephen Ortega       $5,000.00
    

Essa saída é muito próxima do que você entendeu que os mantenedores do sistema legado estavam procurando.

Adicione uma linha de números acima da saída para confirmar mais facilmente o resultado

Como é difícil contar as colunas exatas onde cada elemento de dados aparece, você adiciona uma linha diretamente acima da saída que ajuda a contar as colunas.

Console.WriteLine("1234567890123456789012345678901234567890");
  1. Atualize seu código no Editor de Códigos do Visual Studio da seguinte maneira:

     string paymentId = "769C";
     string payeeName = "Mr. Stephen Ortega";
     string paymentAmount = "$5,000.00";
    
     var formattedLine = paymentId.PadRight(6);
     formattedLine += payeeName.PadRight(24);
     formattedLine += paymentAmount.PadLeft(10);
    
     Console.WriteLine("1234567890123456789012345678901234567890");
     Console.WriteLine(formattedLine);
    
  2. Salve seu arquivo de código e, em seguida, use o Visual Studio Code para executar seu código. Você deve ver a seguinte saída, que você pode enviar para os mantenedores do sistema legado para confirmar que a nova integração funciona corretamente:

     1234567890123456789012345678901234567890
     769C  Mr. Stephen Ortega       $5,000.00
    

Êxito!

Recapitulação

Veja a seguir algumas conclusões importantes a retirar desta unidade.

  • O tipo de dados string, as cadeias literais e as variáveis do tipo string implementam muitos métodos auxiliares para formatar, modificar e executar outras operações nas cadeias.
  • Os métodos PadLeft() e PadRight() adicionam espaço em branco (ou, opcionalmente, outro carater) ao comprimento total de uma cadeia.
  • Utilize PadLeft() para alinhar uma cadeia à direita.
  • Alguns métodos estão sobrecarregados, o que significa que possuem múltiplas versões do método com diferentes argumentos que afetam a sua funcionalidade.
  • O operador += concatena uma nova cadeia no início da cadeia existente à esquerda.

Verifique o seu conhecimento

1.

Dado string myWords = "Learning C#", qual é a melhor descrição de saída para Console.WriteLine(myWords.PadLeft(12));?