Java 中的 Scanner 和 nextChar()

xwbar的头像
2025-07-24 03:13:02
/
世界杯克罗地亚

Java 中的 Scanner 和 nextChar()

javaobject oriented programmingprogramming更新于 2024/8/19 10:52:00

Scanner 是"java.util"包中的一个类,用于从文件或控制台等多种来源获取输入。最常见的输入来源是标准输入,即键盘。扫描仪类有几种方法可以从键盘输入基本数据类型和字符串。

我们将通过本文了解扫描仪类及其各种方法。

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);

参数

源 − 您想要从哪里读取输入。

实例

Scanner read = new Scanner(System.in);

在上面的例子中,我们创建了一个 Scanner 类的对象"read"以及源"System.in",它允许从键盘读取输入。

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

示例 1

以下示例说明了如何使用扫描仪类并从标准输入(即键盘)读取输入。

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() 来读取字符类型输入会怎么样?让我们看一个例子。

示例 3

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 类以消除所有疑问。

相关文章

Java 中 IdentityHashMap、WeakHashMap 和 EnumMap 之间的区别

Java 中继承和接口的区别

Java 中 InputStream 和 OutputStream 之间的区别

Java 中 HashSet 、LinkedHashSet 和 TreeSet 之间的区别和相似之处

Java 中 HashMap 和 IdentityHashMap 之间的区别

Java 中 Hashtable 和同步映射之间的区别

如何在 Java 中迭代 LinkedHashMap?

如何使用反射动态地通过名称调用 Java 中的方法?

如何在 Java 中以相反的顺序迭代向量元素?

如何在 Java 中以反向顺序迭代 LinkedHashMap?

打印

下一节 ❯❮ 上一节

使用烈焰辅助能显著提升游戏水平:全方位解析其优势与使用技巧
派派旧版本6.0.015下载