標籤:strong 字串 否則 ora class 小數 之間 stat 格式
對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()語句的理解