Понякога искаме изходът на дадена програма да бъде отпечатан в даден специфичен формат. В езика за програмиране C това е възможно с помощта на функцията printf(). В този раздел ще обсъдим различното форматиране на изхода.
Нека обсъдим как можем да форматираме изхода в Java.
Има два метода, които могат да се използват за форматиране на изхода в Java:
boto3
- Използване на метода printf().
- Използване на метода format( ).
Форматиране на изхода с помощта на метода System.out.printf().
Прилагането на този метод е много лесно, тъй като е подобно на функцията printf() в програмирането на C.
FormattedOutput1.java
public class FormattedOutput1 { public static void main( String args[ ] ) { // printing the string value on the console String str = ' JavaTpoint ' ; System.out.printf( ' Printing the String value : %s ', str ) ; // printing the integer value on the console int x = 512 ; System.out.printf( ' Printing the integer value : x = %d ', x ) ; // printing the decimal value on the console float f = 5.25412368f ; System.out.printf( ' Printing the decimal value : %f ', f ) ; // this formatting is used to specify the width un to which the digits can extend System.out.printf( ' Formatting the output to specific width : n = %.4f ', f ) ; // this formatting will print it up to 2 decimal places System.out.printf( ' Formatted the output with precision : PI = %.2f ', f ) ; // here number is formatted from right margin and occupies a width of 20 characters System.out.printf( ' Formatted to right margin : n = %20.4f ', f ) ; } }
Изход:
java math pow
Printing the String value : JavaTpoint Printing the integer value : x = 512 Printing the decimal value : 5.254124 Formatting the output to specific width : n = 5.2541 Formatted the output with precision : PI = 5.25 Formatted to right margin : n = 5.2541
System.out.format() е еквивалентен на printf() и също може да се използва.
Важно е да се отбележи, че System.out.print() и System.out.println() приемат един аргумент, но методът printf() може да приема множество аргументи.
Форматиране с помощта на класа DecimalFormat:
DecimalFormat се използва за форматиране на десетични числа.
FormattedOutput2.java
import java.text.DecimalFormat ; // definition of the class public class FormattedOutput2 { public static void main( String args[ ] ) { double x = 123.4567 ; // printing the number System.out.printf( ' The number is : %f ', x ) ; // printing only the numeric part of the floating number DecimalFormat ft = new DecimalFormat( ' #### ' ) ; System.out.println( ' Without fraction part the number is : ' + ft.format( x ) ) ; // printing the number only upto 2 decimal places ft = new DecimalFormat( ' #.## ' ) ; System.out.println( ' Formatted number with the specified precision is = ' + ft.format( x ) ) ; // automatically appends zero to the rightmost part of decimal, instead of #, we use digit 0 ft = new DecimalFormat( ' #.000000 ' ) ; System.out.println( ' Appending the zeroes to the right of the number = ' + ft.format( x ) ) ; // automatically appends zero to the leftmost of decimal number instead of #, we use digit 0 ft = new DecimalFormat( ' 00000.00 ' ) ; System.out.println( ' Appending the zeroes to the left of the number = '+ ft.format( x ) ) ; // formatting money in dollars double income = 550000.789 ; ft = new DecimalFormat( ' $###,###.## ' ) ; System.out.println( ' Your Formatted Income in Dollars : ' + ft.format( income ) ) ; } }
Изход:
The number is : 123.456700 Without fraction part the number is : 123 Formatted number with the specified precision is = 123.46 Appending the zeroes to the right of the number = 123.456700 Appending the zeroes to the left of the number = 00123.46 Your Formatted Income in Dollars : 0,000.79
Java String Format Specifiers
Тук предоставяме таблица със спецификатори на формати, поддържани от Java String.
размер латексов шрифт
Спецификатор на формат | Тип данни | Изход |
---|---|---|
%a | с плаваща запетая (с изключение на BigDecima l) | Връща шестнадесетичен изход на число с плаваща запетая. |
%b | Всеки тип | „истина“, ако не е нула, „фалшиво“, ако е нула |
%° С | Характер | Unicode знак |
%д | цяло число (вкл. байт, кратко, int, дълго, bigint) | Десетично цяло число |
%То е | плаваща запетая | Десетично число в научна нотация |
%f | плаваща запетая | Десетично число |
%g | плаваща запетая | Десетично число, вероятно в научна нотация в зависимост от точността и стойността. |
%ч | всеки тип | Шестнадесетичен низ със стойност от метода hashCode(). |
%н | Нито един | Специфичен за платформата разделител на редове. |
%O | цяло число (вкл. байт, кратко, int, дълго, bigint) | Осмично число |
%с | всеки тип | Низова стойност |
%T | Дата/час (вкл. дълго, календар, дата и TemporalAccessor) | %t е префиксът за конвертиране на дата/час. След това са необходими повече флагове за форматиране. Вижте преобразуване на дата/час по-долу. |
%х | цяло число (вкл. байт, кратко, int, дълго, bigint) | Шестнадесетичен низ. |