2012-01-23 17 views
5

Actualmente estoy trabajando en un proyecto en el que necesito formatear una cadena de solo 10 caracteres. Pero tiene que comenzar de cierta manera y terminar con un contador creciente.Cadena de formato de 10 caracteres

por ejemplo el número estará en el formato de:

0100000001 
0100000002 
0100000003 
... 
0100000010 
0100000011 

es decir, los primeros dos números se mantendrán iguales, solo los últimos dígitos seguirán incrementándose, pero la cadena debe permanecer 10 caracteres.

Cómo podría hacer esto He intentado utilizar String.Format pero no parece funcionar.

ACTUALIZACIÓN He intentado usar el siguiente

destination = String.Format("07000000{0}", messageCount); 

Este tipo de obras, pero una vez que el messageCount sube por encima de 10 se convierte en la longitud 11 y necesita no más de 10

+0

Por favor enviar el código que has probado. – ChrisF

+0

¿cuál es la entrada y qué has probado? – jeroenh

+1

podría usar un contador int para los últimos 8 dígitos, convertirlo a una cadena y luego concatenar a los dos primeros números (almacenados como una cadena)? – turbo

Respuesta

4

tratar

String.Format("01{0:00000000}", i); 
2

Se puede utilizar esta:

var counter = 11; 
var fixedPart = "01"; 
var result = fixedPart + counter.ToString().PadLeft(8,'0'); 
+0

@DownVoter: Por favor, elabore, de lo contrario, no puedo arreglar la respuesta. De todos modos, funciona así, lo probé. –

+0

No reclamó pero adivina que las personas se oponen a guiar el OP lejos de 'String.Format()' – Filburt

7

D8 significa formato como un decimal con hasta 8 ceros a la izquierda

string.Format("01{0}", counter.ToString("D8")); 
+5

o incluso más simple: 'string.Format (" 01 {0: D8} ", messageCount);' – Filburt

0

Dar a este método de extensión de un tiro ... No compilarlo, pero quiero saber si funciona :-)

public static class Ex 
{ 
    public static string ToSpecialString(this string value) 
    { 
    int desiredLength = 10; 
    string prefix = "01"; 
    string padding = new String('0', desiredLength - prefix.Length - value.Length); 
    return prefix + padding + value; 
    } 
} 

... usage ... 

Console.WriteLine("32".ToSpecialString()); 
// should output "0100000032" 
Cuestiones relacionadas