Java 中的 Scanner 和 nextChar()

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?
打印
下一节 ❯❮ 上一节