¿Cómo dejaste el pad an intcon ceros al convertir a a Stringen java?
Básicamente, estoy buscando rellenar enteros 9999con ceros a la izquierda (por ejemplo, 1 = 0001).
                    
                        java
                                formatting
                                zero-pad
                                
                    
                    
                        Omar Kooheji
fuente
                
                fuente

new String(Integer.toString(num + 10000)).substring(1)enfoque sinumes mayor que 9999, ijs.Respuestas:
Usar
java.lang.String.format(String,Object...)así:para el relleno cero con una longitud de 5. Para la salida hexadecimal, reemplace el
dcon unxcomo en"%05x".Las opciones de formato completo se documentan como parte de
java.util.Formatter.fuente
String.formatsean similares a printf () en C?%012d%d can't format java.lang.String argumentsDigamos que quieres imprimir
11como011Se puede usar un formateador :
"%03d".Puede usar este formateador de esta manera:
Alternativamente, algunos métodos de Java admiten directamente estos formateadores:
fuente
Fde formato () debe serf:String.format(...);.int prefixLength = requiredTotalLength - String.valueOf(numericValue).length. Ej. ) Y luego uso un método de cadena de repetición para crear el prefijo requerido. Hay varias formas de repetir cadenas, pero no hay una Java nativa, afaik: stackoverflow.com/questions/1235179/…Si por alguna razón usa Java pre 1.5, puede intentar con el método Lang de Apache Commons
fuente
Encontré este ejemplo ... Lo probaré ...
Probado esto y:
Ambos funcionan, para mis propósitos creo que String.Format es mejor y más sucinto.
fuente
Si el rendimiento es importante en su caso, puede hacerlo usted mismo con menos sobrecarga en comparación con la
String.formatfunción:Actuación
Resultado
Función propia: 1697 ms
Formato de cadena: 38134 ms
fuente
for( int i : data ) strData += (i > 9 ? (i > 99 ? "" : "0") : "00") + Integer.toString( i ) + "|";funcionó muy rápido (¡perdón, no lo cronometré!).Puedes usar Google Guava :
Maven
Código de muestra:
Nota:
Guavaes una biblioteca de gran utilidad, sino que también ofrece un montón de características que se referían aCollections,Caches,Functional idioms,Concurrency,Strings,Primitives,Ranges,IO,Hashing,EventBus, etc.Ref: Guayaba Explicada
fuente
Prueba este:
fuente
Aunque muchos de los enfoques anteriores son buenos, a veces necesitamos formatear enteros y flotantes. Podemos usar esto, particularmente cuando necesitamos rellenar un número particular de ceros a la izquierda y a la derecha de los números decimales.
fuente
si desea imprimir el texto formateado directamente en la pantalla.
fuente
String.formatySystem.out.formatllamar a la mismajava.util.Formatterimplementación.Use la clase DecimalFormat, así:
SALIDA: 0000811
fuente
Aquí es cómo puede formatear su cadena sin usar
DecimalFormat.String.format("%02d", 9)String.format("%03d", 19)String.format("%04d", 119)fuente
Verifique mi código que funcionará para entero y String.
Supongamos que nuestro primer número es 2. Y queremos agregar ceros a eso para que la longitud de la cadena final sea 4. Para eso, puede usar el siguiente código
fuente
(new char[diff])por quéreplace("\0", "0")qué es ... quéDebe usar un formateador, el siguiente código usa NumberFormat
fuente
El único problema con este enfoque es que te hace ponerte el sombrero de pensamiento para descubrir cómo funciona.
fuente
numberowidthmayor que 18.No se necesitan paquetes:
Esto rellenará la cadena con tres caracteres y es fácil agregar una parte más para cuatro o cinco. Sé que esta no es la solución perfecta de ninguna manera (especialmente si quieres una cadena acolchada grande), pero me gusta.
fuente