2010-05-18 7 views
8

que tienen siguientes números: 1, 2, 3, 4, 10Cadena de formato convertido xxx1, xx10 o 1 ###, 10 ## etc.

pero quiero imprimir esos números de la siguiente manera:

0001 
0002 
0003 
0004 
0010 

He buscado en Google. la palabra clave es formato numérico. Pero no tengo nada, acabo de obtener, formato decimal tal asno 1,000,000.00. Espero que me puedas sugerir una referencia o darme algo para resolver este problema.

Gracias

Edición, podemos utilizar NumberFormat, o String.Format ("% 4d", somevalue); pero solo para agregar el carácter 0 antes del número entero. ¿Cómo puedo usar caracteres como x, # o quizás whitespace? Así que el personaje se convierten en: xxxx1 xxx10 o ####1###10 o 1####10###

+0

@Martijn Courteaux: Si piensa que esta pregunta es un duplicado (y yo estaría muy sorprendido si no fuera), por lo que decimos en un comentario y nosotros podemos votar para cerrar este. La etiqueta "deja-vu" era linda, pero no es así como hacemos las cosas aquí. –

Respuesta

12
NumberFormat nf = new DecimalFormat("0000"); 
System.out.println(nf.format(10)); 

Esto imprime "0010".

7

Tome un vistazo a this

Lo que se quiere hacer es "ratón" de su resultado.
p. String.format("%04d", myValue);

4

Puede utilizar String.format();

public static String addLeadingZeroes(int size, int value) 
{ 
    return String.format("%0"+size+"d", value); 
} 

Así que en su situación:

System.out.println(addLeadingZeroes(4, 75)); 

impresiones

0075 
+0

Creo que leería más natural: '" ... Zeroes (int ceros, int value) "' para ser usado como: 'addLeadingZeroes (4, 75)' – OscarRyz

+0

@Oscar: No lo creo. Porque puedes pasar '4' por tamaño y' 75' por valor. Entonces solo tendrás dos ceros y no cuatro. –

+0

Quizás, pero leer 'addLeadingZeroes (75, 4)' me da la impresión de que habría 74 ceros delante del número 4.: -/Mangst Answer tiene sentido :) – OscarRyz

0

Para una respuesta perversa.

int i = 10; 
System.out.println((50000 + i + "").substring(1)); 

impresiones

0010 
Cuestiones relacionadas