零基礎(chǔ)入門學(xué)習(xí)java第七節(jié):Java輸入與輸出

本篇主要介紹Java的輸入與輸出,當(dāng)然,這里說的是控制臺下的輸入與輸出,窗口程序的設(shè)計(jì)將會再后續(xù)篇章中有詳細(xì)說明。

Java的輸出很簡單,調(diào)用System.out.println()即可打印輸出你想要輸出的內(nèi)容。我們之前也已經(jīng)看到過。調(diào)用println()方法時,會自動在后面加上換行符,如果不希望它加換行符的話,就要使用print()方法了,之后的打印輸出會緊跟其后,而不是另起一行。另外,還有一個很常用的方法,那就是printf(),學(xué)過C或者C++的話,對這個printf()應(yīng)該很熟悉,沒錯 ,在Java里幾乎是一模一樣的??梢杂脕砀袷交敵鰞?nèi)容。第一個參數(shù)代表格式,格式中會有一個或者多個轉(zhuǎn)換符,后續(xù)參數(shù)代表替換內(nèi)容,用于替換轉(zhuǎn)換符。說這么多也沒用,直接上代碼。

package pers.frank.test;

import java.util.Date;

public class Test{

public static void main(String[] args) {

/*** 輸出字符串 ***/

// %s表示輸出字符串,也就是將后面的字符串替換模式中的%s

System.out.printf("%s", new Integer(1212));

// %n表示換行

System.out.printf("%s%n", "end line");

// 還可以支持多個參數(shù)

System.out.printf("%s = %s%n", "Name", "Zhangsan");

// %S將字符串以大寫形式輸出

System.out.printf("%S = %s%n", "Name", "Zhangsan");

// 支持多個參數(shù)時,可以在%s之間插入變量編號,1$表示第一個字符串,3$表示第3個字符串

System.out.printf("%1$s = %3$s %2$s%n", "Name", "san", "Zhang");

/*** 輸出boolean類型 ***/

System.out.printf("true = %b; false = ", true);

System.out.printf("%b%n", false);

/*** 輸出整數(shù)類型***/

Integer iObj = 342;

// %d表示將整數(shù)格式化為10進(jìn)制整數(shù)

System.out.printf("%d; %d; %d%n", -500, 2343L, iObj);

// %o表示將整數(shù)格式化為8進(jìn)制整數(shù)

System.out.printf("%o; %o; %o%n", -500, 2343L, iObj);

// %x表示將整數(shù)格式化為16進(jìn)制整數(shù)

System.out.printf("%x; %x; %x%n", -500, 2343L, iObj);

// %X表示將整數(shù)格式化為16進(jìn)制整數(shù),并且字母變成大寫形式

System.out.printf("%X; %X; %X%n", -500, 2343L, iObj);

/*** 輸出浮點(diǎn)類型***/

Double dObj = 45.6d;

// %e表示以科學(xué)技術(shù)法輸出浮點(diǎn)數(shù)

System.out.printf("%e; %e; %e%n", -756.403f, 7464.232641d, dObj);

// %E表示以科學(xué)技術(shù)法輸出浮點(diǎn)數(shù),并且為大寫形式

System.out.printf("%E; %E; %E%n", -756.403f, 7464.232641d, dObj);

// %f表示以十進(jìn)制格式化輸出浮點(diǎn)數(shù)

System.out.printf("%f; %f; %f%n", -756.403f, 7464.232641d, dObj);

// 還可以限制小數(shù)點(diǎn)后的位數(shù)

System.out.printf("%.1f; %.3f; %f%n", -756.403f, 7464.232641d, dObj);

/*** 輸出日期類型***/

// %t表示格式化日期時間類型,%T是時間日期的大寫形式,在%t之后用特定的字母表示不同的輸出格式

Date date = new Date();

long dataL = date.getTime();

// 格式化年月日

// %t之后用y表示輸出日期的年份(2位數(shù)的年,如99)

// %t之后用m表示輸出日期的月份,%t之后用d表示輸出日期的日號

System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL);

// %t之后用Y表示輸出日期的年份(4位數(shù)的年),

// %t之后用B表示輸出日期的月份的完整名, %t之后用b表示輸出日期的月份的簡稱

System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);

// 以下是常見的日期組合

// %t之后用D表示以 "%tm/%td/%ty"格式化日期

System.out.printf("%1$tD%n", date);

//%t之后用F表示以"%tY-%tm-%td"格式化日期

System.out.printf("%1$tF%n", date);

/*** 輸出時間類型***/

// 輸出時分秒

// %t之后用H表示輸出時間的時(24進(jìn)制),%t之后用I表示輸出時間的時(12進(jìn)制),

// %t之后用M表示輸出時間的分,%t之后用S表示輸出時間的秒

System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL);

// %t之后用L表示輸出時間的秒中的毫秒

System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date);

// %t之后p表示輸出時間的上午或下午信息

System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date);

// 以下是常見的時間組合

// %t之后用R表示以"%tH:%tM"格式化時間

System.out.printf("%1$tR%n", date);

// %t之后用T表示以"%tH:%tM:%tS"格式化時間

System.out.printf("%1$tT%n", date);

// %t之后用r表示以"%tI:%tM:%tS %Tp"格式化時間

System.out.printf("%1$tr%n", date);

/*** 輸出星期***/

// %t之后用A表示得到星期幾的全稱

System.out.printf("%1$tF %1$tA%n", date);

// %t之后用a表示得到星期幾的簡稱

System.out.printf("%1$tF %1$ta%n", date);

// 輸出時間日期的完整信息

System.out.printf("%1$tc%n", date);

}

}

好的,這其實(shí)是摘別人的代碼(溜了溜了)。

這里包括了大部分的輸出格式,多碼幾次的話就會使用了。還是那句話,不需要全記住,只需要有一個概念,知道可以實(shí)現(xiàn)這樣的效果,到時候要用了再來查一查也不遲,之后熟能生巧嘛。

String類型中,format方法的用法跟這完全一樣,只是不會輸出到控制臺,而是處理字符串后用于后續(xù)代碼中。

Java里的輸入也不難,但是比輸出要稍微麻煩一點(diǎn),需要先構(gòu)造一個Scanner對象,然后關(guān)聯(lián)System.in、看代碼:

package pers.frank.test;

import java.util.Scanner;

public class Test{

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

System.out.println("What's your name?");

String name = in.nextLine();

System.out.printf("Hello!%s!How old are you?",name);

int age = in.nextInt();

System.out.printf("So, you are %d years old.",age);

}

}

當(dāng)調(diào)用nextline()方法時,程序會暫停,直到你輸入數(shù)據(jù)并按下回車鍵。然后把你輸入的那一行數(shù)據(jù)作為結(jié)果返回。nextline讀入的是一行字符串,而nextInt()方法則期待讀入一個整數(shù)。如果輸入的不是一個整數(shù),就會報錯。除了這兩個方法以外,還有next()方法,讀入一個單詞。nextDouble(),讀入一個浮點(diǎn)數(shù),hasNext()判斷輸入中是否還有其他單詞,hasNextInt() hasNextDouble() 判斷釋放還有表示整數(shù)或者浮點(diǎn)數(shù)。

除了從控制臺讀取輸入之外,還可以從文件中讀取。

Scanner in = new Scanner(Path.get("myfile.txt"));

如果文件名包含反斜杠,則需要在反斜杠之前再加一個額外的反斜杠:“c:windows ext.txt”

如果文件不存在,則會創(chuàng)建文件,可以像輸出到System.out一樣使用print、println、以及printf方法。

文件讀寫在之后的栗子中會有詳細(xì)介紹,這里暫不多說。

至此,本篇內(nèi)容就結(jié)束了,歡迎大家繼續(xù)關(guān)注!

真正重要的東西,用眼睛是看不見的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容