Exercício – Descobrir o preenchimento e alinhamento
- 12 minutos
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 forma que você chama métodos na Console classe. O fato é que há muitos métodos semelhantes no tipo de dados string e qualquer cadeia de caracteres literal ou variável do tipo string.
Aqui está uma breve lista de categorias desses métodos internos para que você 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(), aGetHashcode()Lengthpropriedade) - Métodos que ajudam você a determinar o que está dentro de uma cadeia de caracteres ou até mesmo recuperar apenas uma parte da cadeia de caracteres (
Contains(),StartsWith(),EndsWith(), )Substring() - Métodos que alteram o conteúdo da cadeia de caracteres substituindo, inserindo ou removendo partes (
Replace(),Insert(),Remove()) - Métodos que transformam uma cadeia de caracteres em uma matriz de cadeias de caracteres ou de caracteres (
Split(),ToCharArray())
Formatar cadeias de caracteres adicionando 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 que você envia. Nesse caso, você deseja que o comprimento total da cadeia de caracteres seja de 12 caracteres.
Exclua ou use o operador de comentário de linha
//para remover todo o código dos exercícios anteriores.Atualize o código no Editor do Visual Studio Code da seguinte maneira:
string input = "Pad this"; Console.WriteLine(input.PadLeft(12));No menu Arquivo do Visual Studio Code, selecione Salvar. Salve o arquivo Program.cs antes de compilar ou executar o código.
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 do Terminal deve ser aberto e deve incluir um prompt de comando mostrando que o Terminal está aberto na pasta do TestProject.
No prompt de comando do Terminal, para executar o código, digite dotnet run e pressione Enter.
Observação
Se você vir uma mensagem dizendo "Não foi possível localizar um projeto a ser executado", verifique se o prompt de comando do Terminal exibe o local esperado da pasta TestProject. Por exemplo:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Ao executar o código, você observa quatro caracteres prefixados à esquerda da cadeia de caracteres que levam o comprimento a 12 caracteres.
Pad thisPara adicionar espaço ou caracteres ao lado direito da cadeia de caracteres, use o
PadRight()método em vez disso. 1. Atualize o código no Editor do Visual Studio Code da seguinte maneira:Console.WriteLine(input.PadRight(12));Salve o arquivo de código e use o Visual Studio Code para executar o 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?
No 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.
Você também pode chamar uma segunda versão sobrecarregada do método e passar qualquer caractere que você deseja usar em vez de um espaço. Nesse caso, você preenche o espaço extra com o caractere de traço.
Exclua ou use o operador
//de comentário de linha para comentar todo o código da etapa anterior.Atualize o código no Editor do Visual Studio Code da seguinte maneira:
Console.WriteLine(input.PadLeft(12, '-')); Console.WriteLine(input.PadRight(12, '-'));Salve o arquivo de código e use o Visual Studio Code para executar o código. Você deverá ver quatro traços prefixando a esquerda da cadeia de caracteres que tem 12 caracteres.
----Pad this Pad this----
Agora, aplique esse novo conhecimento a outro cenário do mundo real.
Como trabalhar com cadeias de caracteres preenchidas
Suponha que você trabalhe para uma empresa de processamento de pagamento que ainda dá suporte a sistemas de mainframe herdados. Geralmente, esses sistemas exigem que os dados sejam inseridos em colunas específicas. Por exemplo, armazene a ID de Pagamento nas colunas 1 a 6, o nome do destinatário nas colunas 7 a 30 e o Valor de Pagamento nas colunas 31 a 40. Além disso, é importante que o Valor do Pagamento esteja alinhado à direita.
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, dando aos mantenedores do sistema herdado uma amostra da saída. Posteriormente, você vai criar esse trabalho para enviar centenas ou milhares de pagamentos a serem processados por meio de um arquivo de texto ASCII.
Adicionar a ID de Pagamento à saída
Para começar, imprima a ID de Pagamento nas seis primeiras colunas. Você escolhe alguns dados de pagamento aleatórios que devem ser adequados para as finalidades.
Exclua ou use o operador
//de comentário de linha para comentar todo o código da etapa anterior.Atualize o código no Editor do Visual Studio Code da seguinte maneira:
string paymentId = "769C"; var formattedLine = paymentId.PadRight(6); Console.WriteLine(formattedLine);Reutilize a
formattedLinevariável para criar a cadeia de caracteres de saída.Salve o arquivo de código e use o Visual Studio Code para executar o código. A seguinte saída deve ser exibida:
769C
Há dois espaços em branco à direita que não estão visíveis. Você confirmará que eles existem na próxima etapa.
Adicionar o nome do favorecido à saída
Em seguida, adicione um Nome do Destinatário fictício, preenchendo-o adequadamente.
Atualize o código no Editor do Visual Studio Code 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 de cadeia de caracteres, levando o valor anterior da variávelformattedLinee adicionando o novo valor a ela. É um equivalente abreviado do seguinte exemplo de código:formattedLine = formattedLine + payeeName.PadRight(24);Salve o arquivo de código e use o Visual Studio Code para executar o código. A seguinte saída deve ser exibida:
769C Mr. Stephen Ortega
Novamente, há alguns espaços em branco depois do Nome do Favorecido. Além disso, há dois espaços em branco após a ID de Pagamento da Etapa 1.
Adicionar o valor de pagamento à saída
Em seguida, adicione um valor de pagamento fictício e certifique-se de usar PadLeft() para alinhar a saída à direita.
Atualize o código no Editor do Visual Studio Code 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);Salve o arquivo de código e use o Visual Studio Code para executar o código. A seguinte saída deve ser exibida:
769C Mr. Stephen Ortega $5,000.00
Essa saída é bem próxima daquilo que você entendeu que os mantenedores de sistemas herdados estavam procurando.
Adicionar uma linha de números acima da saída para confirmar mais facilmente o resultado
Como é difícil contar as colunas exatas em que cada elemento de dados aparece, você adiciona uma linha diretamente acima da saída que ajuda a contar as colunas.
Console.WriteLine("1234567890123456789012345678901234567890");
Atualize o código no Editor do Visual Studio Code 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);Salve o arquivo de código e use o Visual Studio Code para executar o código. Você deve ver a seguinte saída, que pode enviar para os mantenedores do sistema herdado para confirmar se a nova integração funciona corretamente:
1234567890123456789012345678901234567890 769C Mr. Stephen Ortega $5,000.00
Êxito!
Recapitulação
Veja algumas informações importantes desta unidade.
- O tipo de dados
string, cadeias de caracteres literais e variáveis do tipo String implementam muitos métodos auxiliares para formatar, modificar e executar outras operações nas cadeias de caracteres. - Os
PadLeft()métodos e osPadRight()métodos adicionam espaço em branco (ou, opcionalmente, outro caractere) ao comprimento total de uma cadeia de caracteres. - Use
PadLeft()para alinhar à direita uma cadeia de caracteres. - Alguns métodos são sobrecarregados, o que significa que eles têm várias versões do método com argumentos diferentes que afetam sua funcionalidade.
- O
+=operador concatena uma nova cadeia de caracteres à direita para a cadeia de caracteres existente à esquerda.