如何在Java中讀取使用者用空格分隔的輸入?


輸入和輸出是所有程式語言的重要組成部分。Java也不例外。使用者輸入對於建立動態和互動式應用程式至關重要。通常輸入是一個單值,但我們也可以讀取使用者用空格分隔的輸入。本文介紹如何在Java中讀取使用者用空格分隔的輸入。

在Java中讀取用空格分隔的使用者輸入的方法

我們可以透過兩種方法讀取使用者用空格分隔的輸入。它們如下:

  • 使用Scanner類

  • 使用BufferedReader類,然後分割並解析單個值

Scanner類

使用Scanner類是讀取使用者用空格分隔的輸入的一種方法。我們將使用Scanner類的方法。它位於java.util包中。Scanner類有很多方法可以讀取使用者輸入。

Scanner類方法

nextInt() 用於讀取並返回下一個整數值。
nextFloat() 用於讀取並返回下一個浮點值。
nextDouble() 用於讀取並返回下一個雙精度值。
next() 用於讀取並返回下一個單詞值作為字串。
nextLine() 用於讀取並返回多個單詞值作為字串。
nextLong() 用於讀取並返回下一個長整數值。
nextShort() 用於讀取並返回下一個短整數值。
nextByte() 用於讀取並返回下一個位元組值。
nextBoolean() 用於讀取並返回下一個布林值。

步驟

我們將在這裡使用nextFloat()方法來理解如何讀取使用者用空格分隔的輸入。這些步驟可以應用於上面提到的其他方法。

  • nextFloat()方法將掃描使用者輸入

  • 輸入將儲存在陣列中

示例

以下是用Java中的Scanner類讀取使用者用空格分隔的輸入的示例。

//import the java.util package
import java.util.*;
 
public class Main {
   public static void main(String args[])
   {
      Scanner scn= new Scanner(System.in);
      System.out.println("Enter 8 values ");
      
      float[] val = new float[8];
      
      //to store the input values
      for (int i = 0; i < val.length; i++) {
         val[i] = scn.nextFloat();
      }
      //print the values
      System.out.println("The values are ");
      for (int i = 0; i < val.length; i++) {
         System.out.println(val[i]);
      }
   }
}

輸出

以下是上述程式碼的輸出

Enter 8 values 
12 89 43 67 51 39 91 87
The values are 
12.0
89.0
43.0
67.0
51.0
39.0
91.0
87.0

解釋

在上面的程式碼中,我們建立了一個Scanner物件。由於我們想要讀取用空格分隔的輸入,因此我們使用迴圈迭代8次,允許使用者使用Scanner類的nextFloat()方法逐個輸入值。每個輸入值都儲存在val陣列的相應索引中。

BufferedReader類

使用BufferedReader類,程式碼透過讀取一行,將其分割成單個值,然後解析單個值來讀取使用者輸入。這是最原始的方法,BufferedReader類位於java.io包中。

readLine()方法用於讀取一行並將其儲存為字串。如果必須將字串轉換為其他資料型別,則必須顯式型別轉換。

步驟

  • 我們將使用BufferedReader類中的readLine()方法來掃描包含空格的字串。

  • 我們將使用split()方法(以空格作為引數)分割字串。

  • 現在,由於輸入是字串陣列的形式,如果所需的資料型別不同,我們可以進行轉換。

示例

以下是用Java中的BufferedReader類讀取使用者用空格分隔的輸入的示例。

//import the java.io package
import java.io.*;

class Main {

   public static void main(String[] args) throws IOException
   {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

      //array
      float num[] = new float[8];

      System.out.println("Enter the string of values separated with spaces ");

          //split the string
      String[] val = br.readLine().split(" ");
      
      //parse individual values
      for (int i = 0; i < val.length; i++) {
         num[i] = Integer.parseInt(val[i]);
      }

      System.out.println("The values are ");

      //print
      for (int i = 0; i < val.length; i++) {
         System.out.println(num[i]);
      }
   }
}

輸出

以下是上述程式碼的輸出:

Enter the string of values separated with spaces 
12 13 14 15 18 19 17 16
The values are 
12.0
13.0
14.0
15.0
18.0
19.0
17.0
16.0

解釋

在上面的程式碼中,我們建立了一個BufferedReader類。因此,BufferedReader類中的readLine()方法掃描包含空格的字串。然後我們將字串分割成單個值,然後解析這些值。

因此,我們瞭解瞭如何在Java中讀取使用者用空格分隔的輸入。我們可以根據自己的偏好和需求使用Scanner類或BufferedReader類來讀取輸入。這使我們能夠建立更靈活的程式。

更新於:2023年7月24日

5000+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.