Java格式化輸出詳細講解(printf、print、println、format等)
Java控制臺輸出
1.使用System.out.write方法輸出
向控制臺輸出信息可以用輸出流的write方法只是使用上沒有print和println那么方便。實際上print和println方法也是對write的封裝最終也是調(diào)用write向控制臺寫出的數(shù)據(jù)。
使用write時需要導入IOException,即在java文件前面加上 import java.io.IOException; write方法可能會拋出IOExcetion。
關(guān)于write方法不作詳細介紹,平時還是用print或println更好
2 使用System.out.println方法輸出
在idea查看,輸入System.out.println()實際上是調(diào)用了以下這些方法(函數(shù)重載)
System.out.println()調(diào)用后會直接在輸出之后添加一個換行,如果不寫參數(shù)就是只起一個換行的作用。
其中如果參數(shù)是char[],會直接輸出char[]中的所有元素,元素之間沒有任何分隔符,仿佛輸出了一個字符串。
還有一個比較特殊的參數(shù)是Object,Object是Java中所有類的父類,如果參數(shù)是Object對象,將直接輸出Object的地址或者null,除非對應的Object重寫了自己的toString方法,這里不做過多敘述。
我們可以利用字符串的連接操作,實現(xiàn)輸出各種各樣的格式,例如輸出:x=5的形式,輸出x的值
int x=5; System.out.println("x="+x);
3 使用System.out.print方法輸出
只比System.out.println()少了一個沒有參數(shù)的方法。
System.out.print與System.out.println的唯一區(qū)別就是,這個沒有添加換行。
4 System.out.printf
printf的底層就是format,倆種方法的用法沒有任何區(qū)別,實際上,printf就只是調(diào)用了一下format而已
大膽猜測,java中之所以有printf這個看似多余的東西是當初為了吸引c程序員??
下面將詳細介紹其用法
格式化輸出詳細介紹
System.out.format(); System.out.printf();
倆者用法一致,下面以format舉例說明。
當我們需要格式化輸出一些數(shù)據(jù),只是使用System.out.println();就有點不夠用了,這時就需要用到format方法了
System.out提供了格式化的輸出方法format,format的第一個參數(shù)是一個模板,模板面有一些占位符,再通過后面的參數(shù)替換模板中的占位符完成整個信息的輸出
舉個例子:
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)的對應的變量的值替換掉。像%.1f是%f中又添加了.f 表示輸出一個1位的小數(shù)。
常用占位符:
占位符 | 說明 |
---|---|
%d | 格式化輸出整數(shù) |
%f | 格式化輸出浮點數(shù) |
%e | 格式化科學計數(shù)法的浮點數(shù) |
%s | 格式化輸出字符串 |
當然不可能只有這么點了,下邊才是大頭??
格式化整數(shù)
既可以格式化基本數(shù)據(jù)類型,也可以格式化它們的包裝類
- %d :格式化十進制整數(shù)
- %o :格式化八進制整數(shù)
- %x :格式化小寫十六進制整數(shù),如:abc58
- %X :格式化大寫十六進制整數(shù),如:ABC58
修飾符
- “+”:格式化正整數(shù)時強制添加上正好,如%+d可將123格式化位+123
- “,”:格式化整數(shù)時按“千”分組,例如:%,d可將1234567890格式化位1,234,567,890
它倆可以組合使用,如:%+,d
數(shù)據(jù)的寬度
%md或%-md指定格式化整數(shù)的長度最少為m
如%6d可將123格式化為“ 123”,左邊三個空格,即如果數(shù)字的長度不足6,則在格式化的數(shù)字左邊添加空格使得整體長度為6(左邊添加空格即右對齊)
%-6d使得結(jié)果左對齊,即在右邊添加空格,如%-6d可將123格式化為“123 ”,右邊三個空格
格式化浮點數(shù)
既可以格式化基本數(shù)據(jù)類型,也可以格式化它們的包裝類
修飾符
- “+” :格式化正數(shù)時添加正號
- “,”:將正數(shù)部分按千分位
它倆可以組合使用,如:%+,f
限制小數(shù)位數(shù)與寬度
- “%.nf”可以限制小數(shù)的位數(shù)為n(遵循四舍五入)
- “%mf”可以規(guī)定數(shù)據(jù)的寬度為m,長度不足補空格,默認居右(%-mf,居左)
組合使用:
System.out.printf("%7.3f",0.1235);
結(jié)果:0.124 (還有倆個空格,“.”也占一個長度)
String也可以調(diào)用format方法
String也可以調(diào)用format方法,用法與上述完全一致,結(jié)果返回一個字符串對象
例:
String s=String.format("%d",12345);
s的值為12345
總結(jié)
到此這篇關(guān)于Java格式化輸出(printf、print、println、format等)的文章就介紹到這了,更多相關(guān)Java格式化輸出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例
這篇文章主要為大家詳細介紹了java實現(xiàn)系統(tǒng)捕獲異常發(fā)送郵件案例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Java實現(xiàn)的生成二維碼統(tǒng)計掃描次數(shù)并轉(zhuǎn)發(fā)到某個地址功能詳解
這篇文章主要介紹了Java實現(xiàn)的生成二維碼統(tǒng)計掃描次數(shù)并轉(zhuǎn)發(fā)到某個地址功能,可實現(xiàn)生成帶統(tǒng)計功能的二維碼,涉及java二維碼的生成、參數(shù)傳遞、解析等相關(guān)操作技巧,需要的朋友可以參考下2018-07-07SpringSecurity?Web權(quán)限方案實現(xiàn)全過程
Spring Security是一個功能強大且高度可定制的身份驗證和授權(quán)框架,專門用于保護Java應用程序的Web集成,下面這篇文章主要給大家介紹了關(guān)于SpringSecurity?Web權(quán)限方案實現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-01-01spring boot @PathVariable傳遞帶反斜杠參數(shù) / 的處理
這篇文章主要介紹了spring boot @PathVariable傳遞帶反斜杠參數(shù) / 的處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02