1. 程式人生 > >java基礎-printf()語句的理解

java基礎-printf()語句的理解

style [] cnblogs ble bsp public line 天突 ont


對print和println的理解很簡單,今天突然接觸到printf(),有點懵,整理了下也幫自己理一理


printf是格式化輸出的形式

下在舉個例子:

package other;
public class TestPrint {                         //聲明打印測試類
  public static void main(String[] args) {          //主方法
     int i = 4;                          //聲明int類型i
   
double j = 5;                        //聲明double類型j    System.out.print(
"用print輸出i:"+ i);          //對比print()、println()、printf()    System.out.println( "用println輸出i:"+ i);
    System.out.printf(
"i的值為%d,j的值為%f", i,j);   } }

運行結果為

              用print輸出i:4用println輸出i:4


              i的值為4,j的值為5.000000

重點來看語句:

System.out.printf("i的值為%d,j的值為%f", i,j);

“i的值為%d,j的值為%f”這個字符串中的"%d"變為i的值了,而"%f"變為了j的值了!

這裏,"%d"的意思是一個int值的占位符,"%f"為一個double 或float值的點位符,這個變量的參數在後面提供。註意的是實參名必須按順序排,而且類型也要相符。否則報錯!

如果把語句改為:System.out.printf("i的值為%d,j的值為%f", j,i);//i和j位置反了,這時就有錯了因為"%d"對應的參數變為j,"%f"對應的變為i了,而j是double的,與"%d"是int型的不一致。所以有錯了。

另外:"%s"是一個字符串值的點位符的意思。"%c"是一個字符值的點位符的意思。

 
public class TestPrint {
  public static void
main(String[] args) {      int i = 4;      double j = 5.000f;
     System.out.printf(
"i的值為%5d,\n", i); // %與d之間的數字5的意思是插入五個占位符 \n空格符      System.out.printf("i的值為%3d,j的值為%.2f", i,j); //j的值為%.2f 意思是,保留小數點後2位
  } }

運行結果為:

i的值為 4,

i的值為 4,j的值為5.00

 

public class TestPrint {
  public static void main(String[] args) {
    int i = 4;
    double j = 5.000f;
   System.out.printf("i的值為%05d,\n", i);      //"%05d"的意思是輸出5個占位符,如果數字不足5位的話就在左邊以0相補
  }
}

運行結果為:
i的值為00004,

總結

System.out.printf("i的值為%d,j的值為%f", j,i)

%+(數字:占位作用,控制輸出格式整齊一致)+數據類型(對應數據類型的字母簡寫)  j,i對應的數字和類型,嚴格按需















java基礎-printf()語句的理解