Java Scanner和nextChar()

Java Scanner和nextChar()

Scanner是一个可用于从多种来源(如文件或控制台)接收输入的类,属于java.util包的一部分。最常见的输入来源是标准输入,即键盘。Scanner类有一些方法可用于从键盘获取基本类型和字符串类型的输入。

通过本文,我们将了解Scanner类及其各种方法。

Scanner和nextChar()

Scanner类的以下方法用于接收输入:

  • nextInt() - 用于接收整数类型的输入。
  • nextLong() - 用于接收长整数类型的输入。
  • nextDouble() - 用于接收双精度类型的输入。
  • nextFloat() - 用于接收浮点数类型的输入。
  • nextLine() - 用于接收字符串类型的输入。

您可能已经注意到Scanner类中没有nextChar()方法。通常,我们使用“next”后跟数据类型名称来接收输入,但是对于字符类型的输入,情况并非如此。我们使用next().charAt(0)来接收字符类型的输入,而不是nextChar()。

我们同时使用next()和charAt(0)方法。方法next()可以接受字符串或数字作为输入,但为了将输入限制为单个字符类型,我们使用charAt(0)。参数0表示单个字符。

首先,让我们讨论如何创建Scanner对象,然后再看看nextChar()方法。

语法

Scanner nameOfobject = new Scanner(source);

参数

source - 你想要从哪里读取输入。

实例

Scanner read = new Scanner(System.in);

在上面的示例中,我们创建了一个Scanner类的对象’read’,并且将‘System.in’作为源,它允许从键盘读取输入。

一旦创建了Scanner,我们可以使用它的对象后面跟着点(.)运算符和它的方法来从指定的源获取输入,并将值赋给相应的变量。

示例1

以下示例演示了如何使用scanner类从标准输入即键盘读取输入。

import java.util.Scanner;
public class Input {
   public static void main(String []args) {
      Scanner read = new Scanner(System.in);
      System.out.println("Enter integer value: ");
      int n1 = read.nextInt();
      System.out.println("Enter double value: ");
      double d1 = read.nextDouble();
      System.out.println("Enter float value: ");
      float f1 = read.nextFloat();
      System.out.println("Integer value: " + n1);
      System.out.println("Double value: " + d1);
      System.out.println("Float value: " + f1);
   }
}

输出

Enter integer value: 
9
Enter double value: 
236.555555
Enter float value: 
4.5
Integer value: 9
Double value: 236.555555
Float value: 4.5

在上面的代码中,我们导入了java.util包中的Scanner类,以便我们可以在程序中使用Scanner。’sc’是Scanner的对象,’System.in’是源,用于从键盘接受不同的基本值。我们分别使用nextInt()、nextDouble()和nextFloat()来接受整数、双精度和浮点值。

示例2

在这个示例中,我们将使用nextLine()从键盘上输入字符串类型的值,并将其存储在字符串类型的变量’st’中。

import java.util.Scanner;
public class Input {
   public static void main(String []args) {
      Scanner read = new Scanner(System.in);
      System.out.println("Enter a String: ");
      while(read.hasNext()) {
         String st = read.nextLine();
         System.out.println("String value: " + st);
      }
   }
}

输出

Enter a String: 
tutorialspoint
String value: tutorialspoint

示例3

在这个示例中,我们将使用next().charAt(0)从键盘接受字符型输入。

import java.util.Scanner;
public class Input{
   public static void main(String[] args){
      Scanner read = new Scanner(System.in);
      System.out.println("Enter any character value: ");
      char chs = read.next().charAt(0);
      System.out.println("The entered value: " + chs);
   }
}

输出

Enter any character value: 
T
The entered value: T

如果我们使用nextChar()来读取字符类型的输入,会发生什么呢?让我们来看一个示例。

示例4

import java.util.Scanner;
public class Input {
   public static void main(String[] args) {
      Scanner read = new Scanner(System.in);
      System.out.println("Enter any character value: ");
      char chs = read.nextchar();
      System.out.println("The entered value: " + chs);
   }
}

输出

Input.java:6: error: cannot find symbol
char chs = read.nextchar();
                       ^
  symbol:   method nextchar()
  location: variable read of type Scanner
1 error

我们出现这个错误是因为Java不支持nextChar()。

结论

在Java中,Scanner类支持nextInt()、nextFloat()等方法,但不支持nextChar()。许多新学习者使用nextChar(),因为它听起来类似于其他用于读取输入的方法,但由于不支持nextChar()而出现错误。因此,我们在本文中尝试通过解释Scanner类来澄清所有疑问。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程