📅  最后修改于: 2020-03-24 13:26:51             🧑  作者: Mango
有时在竞争性编程中,必须以给定的指定格式打印输出。大多数用户都熟悉C语言中的printf函数。让我们看看讨论如何用Java格式化输出。
// Java展示如何使用函数printf()
class JavaFormatter1
{
public static void main(String args[])
{
int x = 100;
System.out.printf("打印简单整数: x = %d\n", x);
// 打印两位小数
System.out.printf("格式化小数精度: PI = %.2f\n", Math.PI);
float n = 5.2f;
// 自动补零
System.out.printf("格式化小数位: n = %.4f\n", n);
n = 2324435.3f;
// 格式化右边界
System.out.printf("格式化右边界: n = %20.4f\n", n);
}
}
输出:
打印简单整数: x = 100
格式化小数精度: PI = 3.14
格式化小数位: n = 5.2000
格式化右边界: n = 2324435.2500
System.out.format()等同于printf()。
// Java展示如何使用DecimalFormat
import java.text.DecimalFormat;
class JavaFormatter2
{
public static void main(String args[])
{
double num = 123.4567;
// 只打印整数部分
DecimalFormat ft = new DecimalFormat("####");
System.out.println("整数部分: num = " + ft.format(num));
// 打印两位小数
ft = new DecimalFormat("#.##");
System.out.println("打印两位小数: num = " + ft.format(num));
// 自动在右边补全
// 不使用#,而使用0
ft = new DecimalFormat("#.000000");
System.out.println("在右边补零: num = " + ft.format(num));
// 自动在左边补全
// 不使用#,而使用0
ft = new DecimalFormat("00000.00");
System.out.println("在左边补全 : num = "+ft.format(num));
// 格式化美元输出
double income = 23456.789;
ft = new DecimalFormat("$###,###.##");
System.out.println("您的梦想收入 : " + ft.format(income));
}
}
输出:
整数部分: num = 123
打印两位小数: num = 123.46
在右边补零: num = 123.456700
在左边补全 : num = 00123.46
您的梦想收入 : $23,456.79
// Java程序展示如何使用SimpleDateFormat
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Formatter3
{
public static void main(String args[]) throws ParseException
{
SimpleDateFormat ft = new SimpleDateFormat("dd-MM-yyyy");
String str = ft.format(new Date());
System.out.println("格式化的日期 : " + str);
// 解析输入
str = "02/18/1995";
ft = new SimpleDateFormat("MM/dd/yyyy");
Date date = ft.parse(str);
// 打印
System.out.println("解析的日期 : " + date);
}
}
输出:
格式化的日期 : 09-08-2018
解析的日期 : Sat Feb 18 00:00:00 UTC 1995