public class FormatPrint{

	public static void main(String[] args){
		//定义一些变量，用来格式化输出。
		double d = 345.678;
		String s = "你好！";
		int i = 1234;

		//"%"表示进行格式化输出，"%"之后的内容为格式的定义。
		System.out.printf("%f\n",d);//"f"表示格式化输出浮点数。

		//"9.2"中的9表示输出的长度，2表示小数点后的位数。
		System.out.printf("%9.2f\n",-d);
		
		System.out.printf("%+9.2f\n",d);//"+"表示输出的正数带正号。
		
		//"-"表示输出的数左对齐（默认为右对齐）。
		System.out.printf("%-9.4f\n",d);
		
		//"+-"表示输出的数带正负号且左对齐。
		System.out.printf("%+-9.3f\n",d);
		
		System.out.printf("%d\n",i);//"d"表示输出十进制整数。
		System.out.printf("%o\n",i);//"o"表示输出八进制整数。
		System.out.printf("%x\n",i);//"x"表示输出十六进制整数。
		
		//"#x"表示输出带有十六进制标志的整数。
		System.out.printf("%#x\n",i);
		
		System.out.printf("%s\n",s);//"s"表示输出字符串。
		
		//可以输出多个变量，注意顺序。
		System.out.printf("输出一个浮点数："+
			"%f，一个整数：%d，一个字符串：%s\n",d,i,s);
		
		//"k$"表示格式字符串之后的第k个参数, k是具体数字。
		System.out.printf("字符串：%2$s，%1$d的十六进制数：%1$#x",i,s);
		
	}
}

