国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

淺析Java中print、printf、println的區別

2019-11-26 16:01:08
字體:
來源:轉載
供稿:網友

printf主要是繼承了C語言的printf的一些特性,可以進行格式化輸出
print就是一般的標準輸出,但是不換行
println和print基本沒什么差別,就是最后會換行
System.out.printf("the number is: d",t);

參照JAVA API的定義如下:
'd' 整數 結果被格式化為十進制整數
'o' 整數 結果被格式化為八進制整數
'x', 'X' 整數 結果被格式化為十六進制整數
'e', 'E' 浮點 結果被格式化為用計算機科學記數法表示的十進制數
'f' 浮點 結果被格式化為十進制數
'g', 'G' 浮點 根據精度和舍入運算后的值,使用計算機科學記數形式或十進制格式對結果進行格式化。
'a', 'A' 浮點 結果被格式化為帶有效位數和指數的十六進制浮點數
println("test")相當于print("testn")就是一般的輸出字符串

printprintlnprintf的區別
print將它的參數顯示在命令窗口,并將輸出光標定位在所顯示的最后一個字符之后。
println 將它的參數顯示在命令窗口,并在結尾加上換行符,將輸出光標定位在下一行的開始。
printf是格式化輸出的形式。

下在舉個例子:

復制代碼 代碼如下:

package other;
public class TestPrint {
public static void main(String[] args) {
   int i = 4;
   double j = 5;

   System.out.print("用print輸出i:"+ i);
   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

可以看到,用print輸出i后,沒有換行,用println輸出的結果直接在print輸出語句后面,而輸出println后換行了,所以用printf輸出時,在第二行
輸出。

我們再來看printf
“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"是一個字符值的點位符的意思。
可能讀者還會問為什么j輸出變成了5.000000?那是因為double是默認有6位小數的(這個可能和系統電腦有關,有的不是6位吧)但是如果你想只要輸出兩位小數行不行?可以啊!只要改下語句就行了!
System.out.printf("i的值為%d,j的值為%.2f", i,j);
這里的"%.2f"的意思是輸出兩位小數點。如果想輸出三位那就"%.3f"。
說到這里你會發現原來printf也很有用的。這樣可以控制輸出的格式。
再學多點知識吧,將代碼改為以下:

復制代碼 代碼如下:

public class TestPrint {
public static void main(String[] args) {
   int i = 4;
   double j = 5.000f;
   System.out.printf("i的值為],n", i);
   System.out.printf("i的值為=,j的值為%.2f", i,j);
}
}

運行結果為:
i的值為    4,
i的值為 4,j的值為5.00

原來在"%"與"d"之間加個數5的意思是輸出5個占位符。默認向右對齊。這樣的輸出是很有用的,比如你想輸出一個表格,因各個數大小不一,有的5位有的4位,這樣輸出的的表格結果就對不齊了。如果將輸出結果全部為同一樣的占位符數。那樣就對齊了。呵呵。
除了"%d"可以這樣外,別的也可以,讀者不防試試。會有很多收獲的。

我們再試著將代碼改一下:

復制代碼 代碼如下:

public class TestPrint {
public static void main(String[] args) {
   int i = 4;
   double j = 5.000f;
   System.out.printf("i的值為d,n", i);
}
}

運行結果為:
i的值為00004,
哈哈,原來"d"的意思是輸出5個占位符,如果數字不足5的話就有左邊以0相補

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正镶白旗| 兰溪市| 平果县| 二连浩特市| 光山县| 教育| 苍梧县| 桑日县| 闻喜县| 南乐县| 威信县| 霍州市| 宝应县| 普洱| 秦安县| 潞西市| 太和县| 武山县| 珠海市| 广元市| 雅安市| 阳春市| 金昌市| 黔西| 平定县| 石家庄市| 汤阴县| 鄱阳县| 监利县| 全南县| 景德镇市| 清丰县| 沿河| 富民县| 远安县| 富顺县| 松潘县| 古蔺县| 龙游县| 陈巴尔虎旗| 阿坝|