Sunteți pe pagina 1din 6

Uso de printf

Para dar formato a la salida se utiliza printf. Java tom prestada (y ampli) esta caracterstica del lenguaje C. El mtodo printf puede realizar: Redondeo de valores de punto flotante a un nmero indicado de decimales. Alinear una columna de nmeros con sus puntos decimales apareciendo uno sobre otro Justificacin de texto a la derecha y a la izquierda. Insertar caracteres en lugares precisos de una lnea de salida. Representar nmeros de punto flotante en forma exponencial. Mostrar todos los tipos de dato con amplitudes y precisiones predefinidas. Mostrar fechas y horas en distintos formatos.

En este documento se detallan los puntos marcados en negritas.

Cada llamada a printf debe proporcionar como primer argumento una cadena de formato que describe el formato de la salida. La cadena de formato puede consistir en texto fijo y especificadores de formato. El texto fijo es mostrado por printf tal como lo hara por los mtodos print o println de System.out. Cada especificador de formato es un marcador de posicin para un valor y especifica el tipo de dato de la salida. Tambin pueden incluir informacin de formato opcional. En la forma ms simple, cada especificador de formato comienza con un signo de porciento (%) y es seguido por un carcter de conversin que representa el tipo de dato del valor que se mostrar. Por ejemplo, el especificador de formato %s es un marcador de posicin para una String, y el especificador de formato %d es un marcador de posicin para un valor int. La informacin de formato opcional, se especifica entre el signo de porciento y el carcter de conversin.

Imprimiendo enteros
La siguiente tabla muestra los caracteres de conversin entera. Y el cdigo usa cada uno para imprimir un entero. En las lneas 9-10, el signo de ms (+) no se muestra por defecto, pero el signo de menos (-) s. Carcter de conversin d o x, X Descripcin Muestra un entero decimal (base 10) Muestra un entero octal (base 8) Muestra un entero hexadecimal (base 16), X para letras maysculas

Programa de Tecnologa en Cmputo Curso Java Bsico

Salida: 26 26 -26 32 1a 1A El mtodo printf tiene la forma: printf(cadena de formato, lista de argumentos); donde cadena de formato describe el formato de la salida, y la lista de argumentos opcional contiene los valores que corresponden a cada especificador de formato en cadena de formato. Puede haber varios especificadores de formato en una cadena de formato. Cada cadena de formato en las lneas 8-10 especifica que printf debe imprimir como salida un entero decimal (%d) seguido de un carcter de salto de lnea. En la posicin del especificador de formato, printf sustituye el primer argumento despus de la cadena de formato. Si la cadena de formato contiene mltiples especificadores de formato, en cada subsecuente posicin de un especificador de formato printf sustituir el valor del siguiente argumento en la lista de argumentos. El especificador de formato %o de la lnea 11 muestra el entero en formato octal. El especificador de formato %x de la lnea 12 muestra el entero en formato hexadecimal. El especificador de formato %X de la lnea 13 muestra el entero en formato hexadecimal con letras maysculas.

Imprimiendo nmeros de punto flotante


La siguiente tabla describe las conversiones de punto flotante ms utilizadas. Carcter de conversin e, E f Descripcin Muestra el valor de punto flotante en notacin exponencial. El carcter de conversin E muestra la salida en letras maysculas. Muestra el valor de punto flotante en notacin decimal.

Programa de Tecnologa en Cmputo Curso Java Bsico

Los caracteres de conversin e y E muestran los valores de punto flotante en notacin cientfica computarizada (tambin llamada notacin exponencial). La notacin exponencial es el equivalente computacional a la notacin cientfica usada en matemticas. Por ejemplo, el valor 140.4582 es representado en notacin cientfica como 1.504582 x 102 y es representado en notacin exponencial como 1.504582e+02 en Java. Esta notacin indica que ese 1.504582 ser multiplicado por 10 elevado a la segunda potencia (e+02). Donde e significa exponente. Los valores impresos con los caracteres de conversin e, E y f son mostrados por defecto con seis dgitos de precisin a la derecha del punto decimal (por ejemplo, 1.045921), otras precisiones deben ser especificadas explcitamente. El carcter de conversin f siempre imprime al menos un dgito a la izquierda del punto decimal. Los caracteres de conversin e y E imprimen la letra minscula e y la mayscula E precediendo al exponente y siempre imprimen exactamente un dgito a la izquierda del punto decimal. Ocurre redondeo si el valor a mostrar tiene ms dgitos significativos que la precisin especificada.

Salida: 1.234568e+07 1.234568e+07 -1.234568e+07 1.234568E+07 12345678.900000

Imprimiendo cadenas y caracteres


Los caracteres de conversin c y s imprimen cadenas y caracteres individuales, respectivamente. Los caracteres de conversin c y C requieren un argumento de tipo char. Los caracteres de conversin s y S pueden recibir una String o cualquier Object como argumento. Cuando se Programa de Tecnologa en Cmputo Curso Java Bsico

utilizan los caracteres de conversin C y S, la salida se muestra en letras maysculas. En el siguiente cdigo se muestran caracteres, cadenas y objetos con los caracteres de conversin c y s. En la lnea 9 ocurre autoboxing cuando una constante int es asignada a un objeto Integer. La lnea 15 muestra un argumento Integer con el carcter de conversin s, e implcitamente se invoca el mtodo toString del objeto para obtener su valor entero. Tambin se puede mostrar un objeto Integer usando el especificador de formato %d. En este caso, el valor int contenido en el objeto Integer ser sacado (unboxed) y mostrado. Nota: Usar %c para imprimir Strings causa una IllegalFormatConversionException, una String no puede ser convertida a un carcter.

Salida: A Esto es una cadena Esta tambien es una cadena ESTA TAMBIEN ES UNA CADENA 1234

Imprimiendo con amplitudes y precisiones de campo


El tamao de un campo en el cual se imprime algn dato se especifica por medio de la amplitud de campo. Si la amplitud de campo es mayor que el dato a mostrar, este se justifica a la derecha del campo por defecto. Se pueden insertar enteros que representan la amplitud de campo entre el % y el carcter de conversin (por ejemplo, %4d) en el especificador de formato. En el siguiente cdigo se imprimen dos grupos de cinco nmeros cada uno, se justifican a la derecha aquellos que contienen menos dgitos que la amplitud de campo. La amplitud de campo es incrementada para imprimir valores ms grandes que el campo y el signo de menos (-) para los valores negativos ocupa un carcter de posicin en el campo. Adems, si no se especifica amplitud de campo, el dato se imprime exactamente con el nmero de posiciones que necesite. La amplitud de campo puede ser usado con todos los especificadores de formato excepto el separador de lnea (%n).

Programa de Tecnologa en Cmputo Curso Java Bsico

Salida: 1 12 123 1234 12345 -1 -12 -123 -1234 -12345 El mtodo printf tambin tiene la capacidad de especificar la precisin con la cual los datos sern impresos. La precisin tiene diferentes significados para diferentes tipos. Cuando se usa con los caracteres de conversin e y f, la precisin es el nmero de dgitos que aparecen despus del punto decimal. Cuando se usa con el carcter de conversin s, la precisin es el mximo nmero de caracteres que sern escritos de la cadena. Para usar la precisin, coloca entre el signo de porciento y el especificador de conversin un punto decimal (.) seguido de un entero que representa la precisin. El siguiente cdigo demuestra el uso de la precisin. Cuando un valor de punto flotante se imprime con una precisin ms pequea que el nmero original de lugares decimales en el valor, ste se redondea. La amplitud de campo y la precisin se pueden combinar colocando la amplitud de campo seguida por un punto decimal, seguido por la precisin entre el signo de porciento y el carcter de conversin, como en la sentencia printf(%9.3f, 123.456789); la cual muestra 123.457 con tres dgitos a la derecha del punto decimal justificado en un campo de 9 dgitos, este nmero ser precedido por dos espacios en blanco.

Programa de Tecnologa en Cmputo Curso Java Bsico

Usando precisin para nmeros de punto flotante 123.945 1.239e+02 124 Using precision for strings Hola mund

Programa de Tecnologa en Cmputo Curso Java Bsico

S-ar putea să vă placă și