[RESOLVIDO] Máscara em branco para alinhar string

2 respostas
Onimatsu

Oi pessoal.

Estou com um problema para formatar strings para registrar em um log (ou nota fiscal).
Por exemplo, supondo que eu tenha uma string com 5 caracteres e outra com 2, preciso fazer que estas fiquem alinhadas ao texto posterior, como segue:

EXEMPLO 1 (alinhadas como colunas)

valor   12,00
va      05,00

As strings valor e va são de tamanho diferente e se forem gravadas no log sem o “alinhamento” fica:

EXEMPLO 2 (sem alinhamento)

valor 12,00
va 05,00

Pergunta, como faço para colocar mask formatter em uma string para que fique com o formato do exemplo 1?

obs: já sei utilizar o mask formatter, eu preciso saber qual tipo de máscara deixa espaço em branco em valor e va (não numérico).
obs: a máscara têm uma quantidade de espaços ###### que se não forem preenchidos irão deixar espaços em brancos a direita do texto, para va = va####, para valor = valor#, onde # deve ficar como espaço.

2 Respostas

CWeiler

Não conheço forma de realizar isto somente com o MaskFormatter, que tem uso mais pensando em interfaces.

Você fala em “log” o que eu presumo seja um arquivo, então você pode fazer assim:

String linha = String.format("%-8s%05.2f", "valor", 5.0)

Mais informações http://claudioweiler.blogspot.com.br/2011/06/formatando-mensagens-strings-em-java.html

Onimatsu

Obrigado, era isso mesmo que eu queria.
Esqueci de mencionar mas, não precisava ser necessariamente o mask formatter, apesar do título. O string format foi perfeito para a situação.

Criado 10 de outubro de 2014
Ultima resposta 10 de out. de 2014
Respostas 2
Participantes 2