Java格式化輸出詳細(xì)講解(printf、print、println、format等)
Java控制臺(tái)輸出
1.使用System.out.write方法輸出
向控制臺(tái)輸出信息可以用輸出流的write方法只是使用上沒有print和println那么方便。實(shí)際上print和println方法也是對(duì)write的封裝最終也是調(diào)用write向控制臺(tái)寫出的數(shù)據(jù)。
使用write時(shí)需要導(dǎo)入IOException,即在java文件前面加上 import java.io.IOException; write方法可能會(huì)拋出IOExcetion。
關(guān)于write方法不作詳細(xì)介紹,平時(shí)還是用print或println更好
2 使用System.out.println方法輸出
在idea查看,輸入System.out.println()實(shí)際上是調(diào)用了以下這些方法(函數(shù)重載)

System.out.println()調(diào)用后會(huì)直接在輸出之后添加一個(gè)換行,如果不寫參數(shù)就是只起一個(gè)換行的作用。
其中如果參數(shù)是char[],會(huì)直接輸出char[]中的所有元素,元素之間沒有任何分隔符,仿佛輸出了一個(gè)字符串。
還有一個(gè)比較特殊的參數(shù)是Object,Object是Java中所有類的父類,如果參數(shù)是Object對(duì)象,將直接輸出Object的地址或者null,除非對(duì)應(yīng)的Object重寫了自己的toString方法,這里不做過多敘述。
我們可以利用字符串的連接操作,實(shí)現(xiàn)輸出各種各樣的格式,例如輸出:x=5的形式,輸出x的值
int x=5;
System.out.println("x="+x);
3 使用System.out.print方法輸出
只比System.out.println()少了一個(gè)沒有參數(shù)的方法。
System.out.print與System.out.println的唯一區(qū)別就是,這個(gè)沒有添加換行。

4 System.out.printf
printf的底層就是format,倆種方法的用法沒有任何區(qū)別,實(shí)際上,printf就只是調(diào)用了一下format而已

大膽猜測(cè),java中之所以有printf這個(gè)看似多余的東西是當(dāng)初為了吸引c程序員??
下面將詳細(xì)介紹其用法
格式化輸出詳細(xì)介紹
System.out.format(); System.out.printf();
倆者用法一致,下面以format舉例說明。
當(dāng)我們需要格式化輸出一些數(shù)據(jù),只是使用System.out.println();就有點(diǎn)不夠用了,這時(shí)就需要用到format方法了
System.out提供了格式化的輸出方法format,format的第一個(gè)參數(shù)是一個(gè)模板,模板面有一些占位符,再通過后面的參數(shù)替換模板中的占位符完成整個(gè)信息的輸出
舉個(gè)例子:
String name="LiLi";
int age=8;
char sex='男';
float grade=52.5;
System.out.format("姓名:%s, 年齡:%d, 性別:%c, 成績:%.1f\n", name, age, sex, grade);
輸出:姓名:LiLi, 年齡:8, 性別:男, 成績:52.5
其中%c,%s等就叫做占位符,分別代表字符和字符串,它們將被后邊出現(xiàn)的對(duì)應(yīng)的變量的值替換掉。像%.1f是%f中又添加了.f 表示輸出一個(gè)1位的小數(shù)。
常用占位符:
| 占位符 | 說明 |
|---|---|
| %d | 格式化輸出整數(shù) |
| %f | 格式化輸出浮點(diǎn)數(shù) |
| %e | 格式化科學(xué)計(jì)數(shù)法的浮點(diǎn)數(shù) |
| %s | 格式化輸出字符串 |
當(dāng)然不可能只有這么點(diǎn)了,下邊才是大頭??
格式化整數(shù)
既可以格式化基本數(shù)據(jù)類型,也可以格式化它們的包裝類
- %d :格式化十進(jìn)制整數(shù)
- %o :格式化八進(jìn)制整數(shù)
- %x :格式化小寫十六進(jìn)制整數(shù),如:abc58
- %X :格式化大寫十六進(jìn)制整數(shù),如:ABC58
修飾符
- “+”:格式化正整數(shù)時(shí)強(qiáng)制添加上正好,如%+d可將123格式化位+123
- “,”:格式化整數(shù)時(shí)按“千”分組,例如:%,d可將1234567890格式化位1,234,567,890
它倆可以組合使用,如:%+,d
數(shù)據(jù)的寬度
%md或%-md指定格式化整數(shù)的長度最少為m
如%6d可將123格式化為“ 123”,左邊三個(gè)空格,即如果數(shù)字的長度不足6,則在格式化的數(shù)字左邊添加空格使得整體長度為6(左邊添加空格即右對(duì)齊)
%-6d使得結(jié)果左對(duì)齊,即在右邊添加空格,如%-6d可將123格式化為“123 ”,右邊三個(gè)空格
格式化浮點(diǎn)數(shù)
既可以格式化基本數(shù)據(jù)類型,也可以格式化它們的包裝類
修飾符
- “+” :格式化正數(shù)時(shí)添加正號(hào)
- “,”:將正數(shù)部分按千分位
它倆可以組合使用,如:%+,f
限制小數(shù)位數(shù)與寬度
- “%.nf”可以限制小數(shù)的位數(shù)為n(遵循四舍五入)
- “%mf”可以規(guī)定數(shù)據(jù)的寬度為m,長度不足補(bǔ)空格,默認(rèn)居右(%-mf,居左)
組合使用:
System.out.printf("%7.3f",0.1235);
結(jié)果:0.124 (還有倆個(gè)空格,“.”也占一個(gè)長度)
String也可以調(diào)用format方法
String也可以調(diào)用format方法,用法與上述完全一致,結(jié)果返回一個(gè)字符串對(duì)象
例:
String s=String.format("%d",12345);s的值為12345
總結(jié)
到此這篇關(guān)于Java格式化輸出(printf、print、println、format等)的文章就介紹到這了,更多相關(guān)Java格式化輸出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot之如何統(tǒng)計(jì)代碼執(zhí)行耗時(shí)時(shí)間
這篇文章主要介紹了Springboot之如何統(tǒng)計(jì)代碼執(zhí)行耗時(shí)時(shí)間問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
spring整合kaptcha驗(yàn)證碼的實(shí)現(xiàn)
這篇文章主要介紹了spring整合kaptcha驗(yàn)證碼的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
Java開發(fā)SSM框架微信退款的實(shí)現(xiàn)
這篇文章是Java微信退款的教程,退款之前用戶需要先進(jìn)行支付,支付之后才可以使用退款,非常具有實(shí)用價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型
這篇文章主要介紹了Java入門基礎(chǔ)之Java的基本語法與Java所支持的數(shù)據(jù)類型,熟悉語法和數(shù)據(jù)類型通常是了解一種編程語言的開始,需要的朋友可以參考下2016-02-02
SpringBoot整合Elasticsearch7.2.0的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot整合Elasticsearch7.2.0的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08

