Java 如何从用户处接收以空格分隔的输入

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类,我们可以根据自己的偏好和需求获取输入。这样可以创建更灵活的程序。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程