O método .NET String.Format permite o posicionamento de uma string em uma posição fixa dentro de uma string de comprimento fixo.
"A corda vai aqui" "A corda vai aqui" "A corda vai aqui"
Como isso é feito usando o .NET?
Editar - Tentei Format / PadLeft / PadRight até a morte. Eles não trabalham. Não sei porque. Acabei escrevendo minha própria função para fazer isso.
Editar - cometi um erro e usei dois pontos em vez de vírgula no especificador de formato. Deve ser "{0,20}".
Obrigado por todas as respostas excelentes e corretas.
Respostas:
Isso fornecerá exatamente as sequências solicitadas:
fonte
,
vez de:
como em todos os outros casos de formatação?O primeiro e o último, pelo menos, são possíveis usando a seguinte sintaxe:
fonte
No Visual Studio 2015, você também pode fazer isso com seqüências de caracteres interpoladas (é um truque do compilador, portanto, não importa qual versão da estrutura .net você segmentar).
fonte
Você foi mostrado
PadLeft
ePadRight
. Isso preencherá os desaparecidosPadCenter
.Nota para si mesmo: não se esqueça de atualizar seu próprio currículo: "Um dia, eu até consertei o código de Joel Coehoorn!" ;-D -Serge
fonte
tente isto:
para o centro, pegue o comprimento da corda e remova com o caráter necessário
fonte
String.Format("{0,-length}", something)
não serão compiladas.Obrigado pela discussão, este método também funciona (VB):
Aqui está a versão do C #:
Para ajudar no entendimento, a variável inteira firstpad é usada. s.PadLeft (firstpad) aplica o (número correto de) espaços em branco à esquerda. O PadRight mais à direita (comprimento desejado) tem uma ligação mais baixa finalizando aplicando espaços em branco à direita.
fonte
Aqui está uma versão do VB.NET que eu criei, inspirada na resposta de Joel Coehoorn, na edição de Oliver e no comentário de shaunmartin:
Isso é configurado como uma extensão de string, dentro de um Módulo Público (da maneira que você faz Extensões no VB.NET, um pouco diferente de C #). Minha pequena alteração é que ela trata uma string nula como uma string vazia e preenche uma string vazia com o valor de largura (atende às minhas necessidades particulares). Esperemos que isso seja convertido facilmente em c # para quem precisar. Se houver uma maneira melhor de fazer referência às respostas, edições e comentários que mencionei acima, que inspiraram minha postagem, informe-me e o farei - eu sou relativamente novo na postagem e não consegui descobrir deixe um comentário (talvez ainda não tenha representante suficiente).
fonte
Publiquei um artigo do CodeProject que pode ser o que você deseja.
Consulte: Caminho AC # para largura indireta e formatação de estilo.
Basicamente, é um método, FormatEx, que age como String.Format, exceto que permite um modificador de alinhamento centralizado.
Significa centralizar o valor de varArgs [0] em um campo amplo de 10 caracteres; incline-se para a direita se for necessário um espaço de preenchimento extra.
Significa centralizar o valor de varArgs [0] em um campo amplo de 10 caracteres; incline-se para a esquerda se for necessário um espaço de preenchimento extra.
Edit: Internamente, é uma combinação do PadCenter de Joel com algumas análises para reestruturar o formato e os varArgs para uma chamada para String.Format que faz o que você deseja.
-Jesse
fonte
parece que você deseja algo assim, que o colocará em um ponto fixo em um comprimento constante:
Observe que isso terá problemas se mystring.length + leftbuffer exceder o comprimento total
fonte
fonte