gpt4 book ai didi

java - 用于不同类型输入的不同 Java 扫描器

转载 作者:行者123 更新时间:2023-11-29 10:14:15 25 4
gpt4 key购买 nike

想象一下下面的扫描仪:我有一个程序要求输入一个整数,然后输入一个字符串。

int age=0;
String name;
Scanner sc = new Scanner(System.in);

System.out.print("Enter Age: ");
age = sc.nextInt();
System.out.print("Enter Name: ");
name= sc.nextLine();

使用 aobe 代码,我没有机会输入名称。所以通常我会声明 2 个扫描仪对象如下:

int age=0;
String name;
Scanner sc = new Scanner(System.in);
Scanner sc2 = new Scanner(System.in); //2nd Scanner object

System.out.print("Enter Age: ");
age = sc.nextInt();
System.out.print("Enter Name: ");
name= sc2.nextLine(); //Using 2nd Scanner Object

我的问题是:是否有必要声明多个扫描器对象来接受不同类型的输入??我的做法是否正确?

多年来我一直在想这个问题。 (SO中的几个问题提到了多个扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个。)

最佳答案

@skiwi 关于只使用一个 Scanner 的说法是正确的,所以你这样做是对的。它不起作用的原因是 nextInt() 消耗了构成整数的所有字符,但它没有触及行尾字符。所以当 nextLine() 被调用时,它看到行尾字符之前没有字符,所以它认为输入了一个空行,你得到一个空字符串。但是,nextLine() 确实会消耗行尾字符,因此如果您在执行 name = sc 之前调用一次 sc.nextLine();。 nextLine();,它应该可以工作。

关于java - 用于不同类型输入的不同 Java 扫描器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com