package com.zf.s11;//创建一个包 

 import java.util.Date; 

 public class TextPrintf {// 操作printf()方法的类 

  public static void printString(){//输出不同格式字符串 

   System.out.printf("%s", "这是一个字符串");// %s表示输出字符串,将后面字符串替换%s 

   System.out.printf("%s%n", "end line");// %n表示换行 

   System.out.printf("%s = %s%n", "folk", "HanZu");// 还可以支持多个参数 

   System.out.printf("%S = %s%n", "folk", "Han Nationality");// %S将字符串以大写形式输出 

   // 支持多个参数时,可以在%s之间插入变量编号,1$表示第一个字符串,3$表示第3个字符串 

   System.out.printf("%1$s = %3$s %2$s%n", 

     "folk", "Nationality", "Han"); 

  } 

  public static void printBoolean(){//输出不同格式的布尔类型 

   System.out.printf("true = %b; false = ", true);//%b表示输出布尔类型 

   System.out.printf("%b%n", false);//%表示换行 

  } 

  public static void printInt(){//输出不同格式的整数 

   Integer obj = 36; 

   System.out.printf("%d; %d; %d%n", 

     -10, 23L,obj);// %d表示将整数格式化为10进制整数 

   System.out.printf("%o; %o; %o%n", 

     -10, 23L, obj);// %o表示将整数格式化为8进制整数 

   System.out.printf("%x; %x; %x%n", 

     -10, 23L, obj);// %x表示将整数格式化为16进制整数 

   System.out.printf("%X; %X; %X%n", 

     -10, 23L, obj);// %X表示将整数格式化为16进制整数,并且字母变成大写形式 

  } 

  public static void printFloatingPoint(){//输出不同格式的浮点类型 

   Double obj = 3.2d; 

   System.out.printf("%e; %e; %e%n",// %e表示以科学技术法输出浮点数 

     -72.000f, 123.23456d, obj); 

   System.out.printf("%E; %E; %E%n", // %E表示以科学技术法输出浮点数,并且为大写形式 

     -72.000f, 123.23456d, obj); 

   System.out.printf("%f; %f; %f%n",// %f表示以十进制格式化输出浮点数 

     -72.000f, 123.23456d, obj); 

    

   System.out.printf("%.1f; %.3f; %f%n",// 还可以限制小数点后的位数 

     -72.000f, 123.23456d, obj); 

  } 

  public static void printTime(){//输出不同格式的日期 

   Date date = new Date(); 

   long time = date.getTime(); 

   // 格式化年月日 

   //%t表示格式化日期时间类型 

   //%T是时间日期的大写形式 

   // %t之后用y表示输出日期的年份(2位数的年,如99) 

   // %t之后用m表示输出日期的月份,%t之后用d表示输出日期的日号 

   System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, time); 

   // %t之后用Y表示输出日期的年份(4位数的年), 

   // %t之后用B表示输出日期的月份的完整名, %t之后用b表示输出日期的月份的简称 

   System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, time); 

   // %t之后用D表示以 "%tm/%td/%ty"格式化日期 

   System.out.printf("%1$tD%n", date); 

   // %t之后用F表示以"%tY-%tm-%td"格式化日期 

   System.out.printf("%1$tF%n", date); 

   // 输出时分秒 

   // %t之后用H表示输出时间的时(24进制),%t之后用I表示输出时间的时(12进制), 

   // %t之后用M表示输出时间的分,%t之后用S表示输出时间的秒 

   System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, time); 

   // %t之后用L表示输出时间的秒中的毫秒 

   System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date); 

   // %t之后p表示输出时间的上午或下午信息 

   System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date); 

   // 以下是常见的时间组合 

   // %t之后用R表示以"%tH:%tM"格式化时间 

   System.out.printf("%1$tR%n", date); 

   // %t之后用T表示以"%tH:%tM:%tS"格式化时间 

   System.out.printf("%1$tT%n", date); 

   // %t之后用r表示以"%tI:%tM:%tS %Tp"格式化时间 

   System.out.printf("%1$tr%n", date); 

   // %t之后用A表示得到星期几的全称 

   System.out.printf("%1$tF %1$tA%n", date); 

   // %t之后用a表示得到星期几的简称 

   System.out.printf("%1$tF %1$ta%n", date); 

   // 输出时间日期的完整信息 

   System.out.printf("%1$tc%n", date); 

  } 

  public static void main(String[] args) {//java程序主入口处 

   System.out.println("1.输出不同格式字符串"); 

   printString();//调用方法 

   System.out.println("2.输出不同格式的布尔值"); 

   printBoolean();//调用方法 

   System.out.println("3.输出不同格式的整数"); 

   printInt();//调用方法 

   System.out.println("4.输出不同格式的浮点型"); 

   printFloatingPoint();//调用方法 

   System.out.println("5.输出不同格式的日期类型"); 

   printTime();//调用方法s 

  } 

 }