valor int menor de 10 convertir a cadena número de dos dígitos

119
string strI;   

for (int i = 1; i < 100; i++)
    strI = i.ToString();

aquí, si i = 1luego ToStringcede"1"

Pero quiero conseguir "01"o"001"

Parece bastante fácil, pero solo hay un artículo sobre

datetime.ToString("yyyy-MM-dd")`
Sungguk Lim
fuente
Es mejor publicar código que se compila y se ejecuta, tostirngno es correcto. Además, para los programadores, 0xsugiere que se esté refiriendo a una base hexadecimal. Estás buscando "ceros iniciales".
Kobi
@Kobi lo siento, mi lengua materna no es el inglés y mi inglés es realmente malo. y voy a la escuela de inglés todos los días para mejorar mi inglés. ¿Podría por favor entenderme? y he editado eltostirng
Sungguk Lim
Está bien. Solo una pista. De todos modos, int.ToString puede tomar un formato, como DateTime.ToString.
Kobi

Respuestas:

12

La respuesta aceptada es buena y rápida:

i.ToString("00")

o

i.ToString("000")

Si necesita más complejidad, vale la pena probar String.Format :

var str1 = "";
var str2 = "";
for (int i = 1; i < 100; i++)
{
    str1 = String.Format("{0:00}", i);
    str2 = String.Format("{0:000}", i);
}

Para el i = 10caso:

str1: "10"
str2: "010"

Utilizo esto, por ejemplo, para borrar el texto en controles de etiquetas particulares en mi formulario por nombre:

private void EmptyLabelArray()
{
    var fmt = "Label_Row{0:00}_Col{0:00}";
    for (var rowIndex = 0; rowIndex < 100; rowIndex++)
    {
        for (var colIndex = 0; colIndex < 100; colIndex++)
        {
            var lblName = String.Format(fmt, rowIndex, colIndex);
            foreach (var ctrl in this.Controls)
            {
                var lbl = ctrl as Label;
                if ((lbl != null) && (lbl.Name == lblName))
                {
                    lbl.Text = null;
                }
            }
        }
    }
}
jp2code
fuente
5

Esta publicación de blog es una gran hoja de trucos para tener a mano cuando intente formatear cadenas en una variedad de formatos.

enlace al troyano eliminado

Editar

El vínculo se eliminó porque Google advirtió temporalmente que el sitio (o el sitio relacionado) podría haber estado difundiendo software malicioso. Ahora está fuera de la lista y ya no se informa como problemático. Google "SteveX String Formatting" encontrará el resultado de la búsqueda y puede visitarlo a su discreción.

Dave White
fuente
1
Ese sitio (ahora) activa una advertencia de troyano.
Henk Holterman
0

También puedes hacerlo de esta manera

private static string GetPaddingSequence(int padding)
{
      StringBuilder SB = new StringBuilder();
      for (int i = 0; i < padding; i++)
      {
           SB.Append("0");
      }

      return SB.ToString();
  }

public static string FormatNumber(int number, int padding)
{
    return number.ToString(GetPaddingSequence(padding));
}

Finalmente llame a la función FormatNumber

string x = FormatNumber(1,2);

La salida será 01, que se basa en su parámetro de relleno. Incrementarlo aumentará el número de ceros.

VIjayendra
fuente