欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Java中print、printf、println的區(qū)別

 更新時(shí)間:2013年08月14日 10:20:24   作者:  
以下是對(duì)Java中print、printf、println的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下

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

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

printprintlnprintf的區(qū)別
print將它的參數(shù)顯示在命令窗口,并將輸出光標(biāo)定位在所顯示的最后一個(gè)字符之后。
println 將它的參數(shù)顯示在命令窗口,并在結(jié)尾加上換行符,將輸出光標(biāo)定位在下一行的開(kāi)始。
printf是格式化輸出的形式。

下在舉個(gè)例子:

復(fù)制代碼 代碼如下:

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);

}
}

運(yùn)行結(jié)果為
用print輸出i:4用println輸出i:4
i的值為4,j的值為5.000000

可以看到,用print輸出i后,沒(méi)有換行,用println輸出的結(jié)果直接在print輸出語(yǔ)句后面,而輸出println后換行了,所以用printf輸出時(shí),在第二行
輸出。

我們?cè)賮?lái)看printf
“i的值為%d,j的值為%f”這個(gè)字符串中的"%d"變?yōu)閕的值了,而"%f"變?yōu)榱薺的值了!
這里,"%d"的意思是一個(gè)int值的占位符,"%f"為一個(gè)double 或float值的點(diǎn)位符,這個(gè)變量的參數(shù)在后面提供。注意的是實(shí)參名必須按順序排。不然就會(huì)錯(cuò)了。而且類(lèi)型也要相符。如果我們把語(yǔ)句改為System.out.printf("i的值為%d,j的值為%f", j,i);//i和j位置反了
這時(shí)就有錯(cuò)了因?yàn)?%d"對(duì)應(yīng)的參數(shù)變?yōu)閖,"%f"對(duì)應(yīng)的變?yōu)閕了,而j是double的,與"%d"是int形的不一致。所以有錯(cuò)了。
還有"%s"是一個(gè)字符串值的點(diǎn)位符的意思。"%c"是一個(gè)字符值的點(diǎn)位符的意思。
可能讀者還會(huì)問(wèn)為什么j輸出變成了5.000000?那是因?yàn)閐ouble是默認(rèn)有6位小數(shù)的(這個(gè)可能和系統(tǒng)電腦有關(guān),有的不是6位吧)但是如果你想只要輸出兩位小數(shù)行不行?可以??!只要改下語(yǔ)句就行了!
System.out.printf("i的值為%d,j的值為%.2f", i,j);
這里的"%.2f"的意思是輸出兩位小數(shù)點(diǎn)。如果想輸出三位那就"%.3f"。
說(shuō)到這里你會(huì)發(fā)現(xiàn)原來(lái)printf也很有用的。這樣可以控制輸出的格式。
再學(xué)多點(diǎn)知識(shí)吧,將代碼改為以下:

復(fù)制代碼 代碼如下:

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);
}
}

運(yùn)行結(jié)果為:
i的值為    4,
i的值為 4,j的值為5.00

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

我們?cè)僭囍鴮⒋a改一下:

復(fù)制代碼 代碼如下:

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

運(yùn)行結(jié)果為:
i的值為00004,
哈哈,原來(lái)"d"的意思是輸出5個(gè)占位符,如果數(shù)字不足5的話(huà)就有左邊以0相補(bǔ)

相關(guān)文章

最新評(píng)論