Zero Preencher uma matriz inteira quando impressa na caixa de texto

0

Eu tenho uma matriz de números inteiros no entanto quero imprimi-los em uma caixa de texto dentro do meu formulário de forma que todos eles parecem o mesmo em comprimento e parece puro. Como eu iria sobre zero-padding os 100 inteiros presentes na minha matriz (variando em valor de 1 a 1000) e a saída do array preenchido de zero de uma vez para uma caixa de texto?

Atualmente, meu programa será exibido como:

1,2,...,1000

no entanto, gostaria de poder fazer como:

0001,0002,...,1000 .

O código que eu uso para imprimir na caixa de texto é:

'array = new int[1000];    //create an array
 Random randNum = new Random();    //create an instance of random Number
 for (int i = 0; i < array.Length; i++)    //Generate random array
 {
      array[i] = randNum.Next(0, 1000);
 }
 SetupLabel.Text = (string.Join(" ", array));    //output all of the array at once as a string'

Qualquer ideia ajudaria muito, obrigado.

    
por KHS 12.01.2017 / 12:51

2 respostas

0

Outra abordagem é usar Formatação Composta ou Interpolação de Cadeia para fazer o "preenchimento zero" para você.

        int[] array = new int[1000];    //create an array
        Random randNum = new Random();    //create an instance of random Number
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < array.Length; i++)    //Generate random array
        {
            int r = randNum.Next(0, 1000);
            sb.Append($"{r:0000},");
        }
        SetupLabel.Text = sb.ToString();

O ": 0000" significa preencher o valor com pelo menos 4 zeros

    
por 28.01.2017 / 17:49
0

Preenchimento de strings no .NET Framework

Usando String.PadLeft ou (não aplicável em seu exemplo) String.PadRight . Sua saída de exemplo também está errada, pois seu código geraria uma lista separada por espaços em branco em vez de vírgulas. Para usar StringPadLeft você primeiro teria que criar um objeto de string intermediário ao qual você adiciona consecutivamente o número preenchido.

    
por 12.01.2017 / 12:58