Java 接收鍵盤輸入三種方式比較。本站提醒廣大學習愛好者:此文章僅供參考,不一定能完全符合您的需求。以下是完整比較正文
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class EnterTest {
public static void main(String[] args) {
CharTest();
ReadTest();
ScannerTest();
}
/** System.in.read() 方法
* 缺點一: 僅能取得單一字元
* 缺點二: 僅能取得 char 型別,轉換 int/float 較麻煩 */
public static void CharTest() {
try {
System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("Your Enter Char is:" + i);
} catch (IOException e) { e.printStackTrace(); }
}
/** InputStreamReader + BufferedReader
* 優點: 可取得字串
* 缺點: 仍需自行轉換 int/float 等型別 */
public static void ReadTest() {
System.out.println("ReadTest, Please Enter Data:");
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(is);
try {
String name = br.readLine();
System.out.println("ReadTest Output:" + name);
} catch (IOException e) { e.printStackTrace(); }
}
/** Scanner 類別
* 優點一: 可取得字串
* 優點二: 內建 nextInt、nextFloat 等方法,極其方便強大 */
public static void ScannerTest() {
Scanner sc = new Scanner(System.in);
System.out.println("ScannerTest, Please Enter Name:");
String name = sc.nextLine();
System.out.println("ScannerTest, Please Enter Age:");
int age = sc.nextInt();
System.out.println("ScannerTest, Please Enter Salary:");
float salary = sc.nextFloat();
System.out.println("Your Information is as below:");
System.out.println("Name:" + name + "\nAge:" + age + "\nSalary:" + salary);
}
}
總結:
要取得鍵盤輸入:
Python 有 raw_input()/input(),C 有 scanf(),C++ 有 cin()。
Java 沒有現成函數,但可用上述三種方式完成,其中 Scanner 應該是最簡單、最方便的。