有时在竞争性编程中,必须以给定的指定格式打印输出。大多数用户都熟悉C语言中的printf函数。让我们看看讨论如何用Java格式化输出:
这是所有方法中最简单的方法,因为它类似于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 = 100
Formatted with precison: PI = 3.14
Formatted to specific width: n = 5.2000
Formatted to right margin: n = 2324435.2500
System.out.format()等同于printf(),也可以使用。
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 = 123
Formatted to Give precison: num = 123.46
appended zeroes to right: num = 123.456700
formatting Numeric part : num = 00123.46
your Formatted Dream Income : $23,456.79
此类存在于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-2018
Parsed Date : Sat Feb 18 00:00:00 UTC 1995
参考:
https://docs.oracle.com/ 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
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。