如何在 Java 中獲取使用者輸入

Rupam Yadav 2023年1月30日 2020年11月24日
  1. 在 Java 中 Scanner 獲取使用者輸入的方法
  2. 在 Java 中 BufferedReader 獲取使用者輸入
如何在 Java 中獲取使用者輸入

在本文中,我們將討論在 Java 中獲取使用者輸入的最佳方法。雖然有很多方法,但其中一些方法已經被廢棄,因此我們將避免使用它們。

在 Java 中 Scanner 獲取使用者輸入的方法

我們可以使用 Scanner 來實現我們的目標。我們需要建立一個類的物件,並將 System.in 傳遞給它的建構函式,因為它開啟了一個 InputStream 來獲取使用者的輸入。

下一步就是使用 Scanner 物件,並呼叫下面的一個方法。每個方法都會獲取不同資料型別的輸入值。

方法 說明
next() 字串值
nextInt() 整數值
nextByte() 位元組值
nextLong() 長值
nextFloat() 浮動值
nextDouble() 雙值

在下面的例子中,我們將使用 nextInt() 方法,該方法取整數值。

例子:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner inputReader = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int number = inputReader.nextInt();

    		System.out.println("Your entered number was: "+number);        

    }

}

輸出:

Enter a number: 
454
Your entered number was: 454

在 Java 中 BufferedReader 獲取使用者輸入

我們有另一個類可以從使用者那裡獲得輸入。BufferedReader 使用字元流從輸入中讀取文字,而 Scanner 可以用於原始型別的輸入。

這意味著它沒有像 BufferedReader 類中的 nextInt() 這樣的方法,但有一個 readLine() 方法,它可以接受輸入,然後我們可以在後面對其進行解析。

在下面的例子中,我們把輸入作為一個 int。我們必須讀取輸入,然後使用 Integer.parseInt(String) 將其解析為 int 型別。我們應該用 try-catch 塊包圍語句,因為如果沒有外部輸入裝置,可能會出現 IOException。

例子:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {

        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);

        try {

            System.out.println("Please enter a number: ");
           String s = br.readLine();
            int i = Integer.parseInt(s);

            System.out.println("Your entered number was: "+i);
        } catch (IOException e) {
            e.printStackTrace();
        }

        br.close();

    }
}

輸出:

Please enter a number: 
454
Your entered number was: 454
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Input