如何使用Java进行格式化输出(代码示例)

有时在竞争性编程中, 必须以给定的指定格式打印输出。大多数用户都熟悉C语言中的printf函数。让我们看看讨论如何用Java格式化输出:
使用System.out.printf()格式化输出
这是所有方法中最简单的方法, 因为这与C语言中的printf相似。请注意, System.out.print()和System.out.println()带有单个参数, 但是printf()可以带有多个参数。

// A Java program to demonstrate working of printf() in Java class JavaFormatter1 { public static void main(String args[]) { int x = 100 ; System.out.printf( "Printing simple integer: x = %d\n" , x); // this will print it upto 2 decimal places System.out.printf( "Formatted with precison: PI = %.2f\n" , Math.PI); float n = 5 .2f; // automatically appends zero to the rightmost part of decimal System.out.printf( "Formatted to specific width: n = %.4f\n" , n); n = 2324435 .3f; // here number is formatted from right margin and occupies a // width of 20 characters System.out.printf( "Formatted to right margin: n = %20.4f\n" , n); } }

输出如下:
Printing simple integer: x = 100Formatted with precison: PI = 3.14Formatted to specific width: n = 5.2000Formatted to right margin: n =2324435.2500

System.out.format()与printf()等效, 也可以使用。
使用DecimalFormat类进行格式化:
DecimalFormat用于格式化十进制数字。
// Java program to demonstrate working of DecimalFormat import java.text.DecimalFormat; class JavaFormatter2 { public static void main(String args[]) { double num = 123.4567 ; // prints only numeric part of a floating number DecimalFormat ft = new DecimalFormat( "####" ); System.out.println( "Without fraction part: num = " + ft.format(num)); // this will print it upto 2 decimal places ft = new DecimalFormat( "#.##" ); System.out.println( "Formatted to Give precison: num = " + ft.format(num)); // automatically appends zero to the rightmost part of decimal // instead of #, we use digit 0 ft = new DecimalFormat( "#.000000" ); System.out.println( "appended zeroes to right: num = " + ft.format(num)); // automatically appends zero to the leftmost of decimal number // instead of #, we use digit 0 ft = new DecimalFormat( "00000.00" ); System.out.println( "formatting Numeric part : num = " +ft.format(num)); // formatting money in dollars double income = 23456.789 ; ft = new DecimalFormat( "$###, ###.##" ); System.out.println( "your Formatted Dream Income : " + ft.format(income)); } }

输出如下:
Without fraction part: num = 123Formatted to Give precison: num = 123.46appended zeroes to right: num = 123.456700formatting Numeric part : num = 00123.46your Formatted Dream Income : $23, 456.79

使用SimpleDateFormat类格式化日期并进行解析:
此类存在于java.text包中。
// Java program to demonstrate working of SimpleDateFormat import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; class Formatter3 { public static void main(String args[]) throws ParseException { // Formatting as per given pattern in the argument SimpleDateFormat ft = new SimpleDateFormat( "dd-MM-yyyy" ); String str = ft.format( new Date()); System.out.println( "Formatted Date : " + str); // parsing a given String str = "02/18/1995" ; ft = new SimpleDateFormat( "MM/dd/yyyy" ); Date date = ft.parse(str); // this will print the date as per parsed string System.out.println( "Parsed Date : " + date); } }

输出如下:
Formatted Date : 09-08-2018Parsed Date : Sat Feb 18 00:00:00 UTC 1995

参考文献:
https://docs.oracle.com/
【如何使用Java进行格式化输出(代码示例)】javase / tutorial / essential / io /
formatting.html
https://docs.oracle.com/
javase / tutorial / java / data /
numberformat.html
http://docs.oracle.com/javase/
6 / docs / api / java / text /
SimpleDateFormat.html
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读