輸入和輸出是任何程式語言的兩個主要基本面向。鍵盤和螢幕分別是進行輸入和輸出的基本設備。使用者輸入對於使應用程式具有互動性非常重要。透過收集輸入,Java 程式可以自訂其輸出、執行特定操作或調整其功能以滿足不同使用者的需求。不同的 Java 包包含其他類別來取得使用者的輸入。本文討論如何用 Java 取得使用者的輸入。
在Java程式中,有三種從使用者取得輸入的方式。它們如下所示-
Scanner 類別用於在 Java 中取得使用者的輸入。它是獲取用戶輸入的最常用且最簡單的方法之一。它是 java.util 套件的一部分。我們可以使用 Scanner 類別來取得原始類型的輸入,如 int、char、float、double 等。它更容易閱讀,使其成為最常見的選擇。
Scanner scn=new Scanner(System.in);
導入 java.util 套件對於使用 Scanner 類別非常重要。在上面的語句中,我們建立了一個 Scanner 類別建構函數,然後傳遞了 System.in 參數,使其能夠從標準輸入流中讀取。
nextInt() | 的翻譯為:用於讀取並傳回下一個整數值。 |
nextFloat() | 用於讀取並傳回下一個浮點值 |
nextDouble() | 用於讀取並傳回下一個雙精度值。 |
下一個() | 它用於讀取並傳回下一個單字的值作為字串。 |
nextLine() | 它用於讀取並返回下一個多個單字值作為字串 |
nextLong() | 它用於讀取並傳回下一個長整數值。 |
nextShort() | 它用於讀取並傳回下一個短整數值。 |
nextByte() | 用於讀取並傳回下一個位元組值。 |
nextBoolean() | 它用於讀取並返回下一個布林值。 |
以下是使用 Java 中的 Scanner 类获取用户输入的示例。
//import the java.util package import java.util.*; public class Main { public static void main(String args[]) { // to take the input, use the Scanner Class Scanner scn = new Scanner(System.in); System.out.println("Enter your roll no"); int roll_no = scn.nextInt(); //integer input System.out.println("Enter your name"); String name= scn.next(); //String input System.out.println("Enter your marks"); double marks = scn.nextDouble(); //double input System.out.println("Your roll no is- " + roll_no+" your name is- "+name+" and marks- "+marks); } }
以下是上述代码的输出
Enter your roll no 1 Enter your name Sita Enter your marks 99 Your roll no is- 1 your name is- Sita and marks- 99.0
在上面的代码中,我们在Java中创建了一个Scanner类。我们以int、String和double的形式获取了三个不同的用户输入。获取输入后,我们将它们打印出来
易于实施。
简单的方法。
速度较慢。
它不是同步的,因此不适合多线程。
BufferedReader是Java中另一个用于从用户获取输入的类。它在JDK 1.0中引入,并且是从用户获取输入的基本方法。它位于java.io包中。
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
这意味着我们创建了一个BufferedReader对象。InputStreamReader类用于将输入的字节流转换为BufferedReader可以理解的字符流。System.in是标准输入,默认为键盘。
readLine()方法用于读取一行并将其存储为字符串。如果字符串需要转换为其他数据类型,必须显式进行类型转换。
以下是使用 Java 中的 BufferedReader 类获取用户输入的示例。
//import the java.io package import java.io.*; public class Main { public static void main(String args[]) throws IOException { // to take the input, use the BufferedReader Class BufferedReader br= new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter your roll no"); int roll_no = Integer.parseInt(br.readLine()); //integer input System.out.println("Enter your name"); String name= br.readLine(); //String input System.out.println("Enter your marks"); double marks = Double.parseDouble(br.readLine()); //double input System.out.println("Your roll no is- " + roll_no+" your name is- "+name+" and marks- "+marks); } }
以下是上述代码的输出 -
Enter your roll no 1 Enter your name Sita Enter your marks 94 Your roll no is- 1 your name is- Sita and marks- 94.0
创建了一个名为"br"的BufferedReader对象。它使用InputStreamReader类从用户那里获取输入,该类将输入的字节转换为字符。我们已经从用户那里获取了输入,但它的默认值是一个字符串。然后将其强制转换为所需的数据类型
更快的性能
可以与多个线程一起使用。
只能接受字符串输入。稍后必须将它们转换为所需的数据类型。
可能需要导入多个库才能使用 BufferedReader 类。
使用 Console 类是通过命令行获取用户输入的另一种方法。这是在 JDK 1.5 中引入的,并且存在于 java.io 包中。 Console 类对于从控制台读取密码非常有用。此外,与其他方法相比,它的实例化很简单。 java.io.Console 库对于 Console 类至关重要。
Console c = System.console();
以下是使用 Java 中的 Console 类获取用户输入的示例。
//import the java.io package import java.io.*; public class Main { public static void main(String args[]) throws IOException { System.out.println("Enter your roll no"); int roll_no = Integer.parseInt(System.console().readLine()); //integer input System.out.println("Enter your name"); String name = System.console().readLine(); System.out.println("Enter your marks"); double marks = Double.parseDouble(System.console().readLine()); //double input System.out.println("Your roll no is- " + roll_no+" your name is- "+name+" and marks- "+marks); } }
以下是上述代码的输出 -
Enter your roll no 1 Enter your name Sita Enter your marks 96 Your roll no is- 1 your name is- Sita and marks- 96.0
在上面的代码中,我们直接使用System.console()函数读取了用户输入。
这个类使用了同步方法
不能在像IDE这样的环境中使用,其中所有输入不是一次性给出的。
因此,我们了解了如何在Java中从用户那里获取输入。根据个人偏好,我们可以使用其中任何一种。
以上是如何在Java中接受使用者輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!