Java輸入和輸出
- 前言
- 一、Java打印Hello World
- 二、輸出到控制臺
- 基本語法
- 代碼示例
- 格式化字符串
- 三、從鍵盤輸入
- 讀入一個字符
- 正確寫法
- 使用 Scanner 讀取字符串/整數/浮點數
- 使用 Scanner 循環讀取 N 個數字
前言
推薦一個網站給想要了解或者學習人工智能知識的讀者,這個網站里內容講解通俗易懂且風趣幽默,對我幫助很大。我想與大家分享這個寶藏網站,請點擊下方鏈接查看。
https://www.captainbed.cn/f1
Java輸入和輸出涉及從各種來源(如鍵盤、文件等)讀取數據以及將數據發送到各種目標(如屏幕、文件等)。Java提供了多種流類(如InputStream和OutputStream)來處理這些操作,允許開發者以靈活和高效的方式處理數據輸入輸出。
一、Java打印Hello World
新生嬰兒會以自己獨特的方式向這個嶄新的世界打招呼,Java剛出來后,也算是一個新事物,
那Java是否也應該向這個美好的世界來聲問候呢?
我們來看下Java是如何來實現問候的。
public static void main(String[] args) {System.out.println("Hello World");
}
二、輸出到控制臺
基本語法
System.out.println(msg); // 輸出一個字符串, 帶換行
System.out.print(msg);// 輸出一個字符串, 不帶換行
em.out.printf(format, msg); // 格式化輸出
println
輸出的內容自帶\n
,print
不帶\n
printf
的格式化輸出方式和 C 語言的printf
是基本一致的.
代碼示例
public static void main(String[] args) {System.out.println("hello world");int x = 10;System.out.printf("x = %d\n", x);
}
格式化字符串
轉換符 | 類型 | 舉例 |
---|---|---|
d | 十進制整數 ("%d", 100) | 100 |
x | 十六進制整數 ("%x", 100) | 64 |
o | 八進制整數 ("%o", 100) | 144 |
f | 定點浮點數 ("%f", 100f) | 100.000000 |
e | 指數浮點數 ("%e", 100f) | 1.000000e+02 |
g | 通用浮點數 ("%g", 100f) | 100.000 |
a | 十六進制浮點數 ("%a", 100) | 0x1.9p6 |
s | 字符串 ("%s", 100) | 100 |
c | 字符 ("%c", ‘1’) | 1 |
b | 布爾值 ("%b", 100) | true |
h | 散列碼 ("%h", 100) | 64 |
% | 百分號 ("%.2f%%", 2/7f) | 0.29% |
三、從鍵盤輸入
讀入一個字符
直接使用 System.in.read
可以讀入一個字符. 但是需要搭配異常處理
public static void main(String[] args) {System.out.print("Enter a Char:");char i = (char) System.in.read();System.out.println("your char is :"+i);
}
正確寫法
import java.io.IOException;// 需要導入 IOException 包
public static void main(String[] args) {try {System.out.print("Enter a Char:");char i = (char) System.in.read();System.out.println("your char is :"+i);} catch (IOException e) {System.out.println("exception");}
}
使用 Scanner 讀取字符串/整數/浮點數
import java.util.Scanner; // 需要導入 util 包
public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("請輸入你的姓名:");String name = sc.nextLine();System.out.println("請輸入你的年齡:");int age = sc.nextInt();System.out.println("請輸入你的工資:");float salary = sc.nextFloat();System.out.println("你的信息如下:");System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);sc.close(); // 注意, 要記得調用關閉方法
}
這段代碼是一個簡單的Java程序。它使用了Scanner
類來從用戶輸入中獲取數據。
首先,我們導入了java.util.Scanner
類,這是一個可以從標準輸入中讀取數據的工具類。
然后,在main
方法中,我們創建了一個Scanner
對象sc
來讀取用戶的輸入。通過調用nextLine()
方法,我們可以獲取用戶輸入的姓名并將其保存在name
變量中。接下來,通過調用nextInt()
方法,我們獲取用戶輸入的年齡并保存在age
變量中。最后,通過調用nextFloat()
方法,我們獲取用戶輸入的工資并保存在salary
變量中。
然后,我們輸出了用戶輸入的信息。通過使用"+
"操作符,我們將字符串和變量連接起來輸出。
最后,我們調用了sc.close()
方法來關閉Scanner
對象,這是一個好的習慣,以釋放資源并避免內存泄漏。
這樣,程序就會等待用戶輸入,并將輸入的姓名、年齡和工資打印出來。
使用 Scanner 循環讀取 N 個數字
import java.util.Scanner; // 需要導入 util 包
public static void main(String[] args) {Scanner sc = new Scanner(System.in);double sum = 0.0;int num = 0;while (sc.hasNextDouble()) {double tmp = sc.nextDouble();sum += tmp;num++;}System.out.println("sum = " + sum);System.out.println("avg = " + sum / num);sc.close();
}
這段代碼是一個簡單的Java程序,它使用了Scanner
類從用戶輸入中獲取一系列的浮點數,并計算它們的總和和平均值。
首先,我們導入了java.util.Scanner
類,這是一個用于從標準輸入中讀取數據的工具類。
然后,在main
方法中,我們創建了一個Scanner
對象sc
來讀取用戶的輸入。接下來,我們初始化了兩個變量sum
和num
,用于保存浮點數的總和和數量。
然后,我們使用一個while
循環來判斷用戶是否還輸入了一個浮點數。通過調用sc.hasNextDouble()
方法,我們可以判斷下一個輸入是否是一個浮點數。只要用戶輸入的還是浮點數,循環就會繼續執行。
在循環體內,我們調用sc.nextDouble()
方法來獲取用戶輸入的浮點數,并將其保存在臨時變量tmp
中。然后我們將tmp
的值累加到sum
變量中,同時將num
加1以記錄輸入的數量。
當用戶輸入結束后,也就是不再輸入浮點數時,循環將會終止。此時,我們輸出sum
變量的值作為浮點數的總和,并通過sum / num
計算出浮點數的平均值。
最后,我們調用sc.close()
方法來關閉Scanner
對象,這是一個好的習慣,以釋放資源并避免內存泄漏。
這樣,程序會一直等待用戶輸入浮點數,并計算它們的總和和平均值,直到沒有更多的輸入為止。
ps:當循環輸入多個數據的時候, 使用 ctrl + z
來結束輸入 (Windows 上使用 ctrl + z
, Linux / Mac 上使用 ctrl +d
)