java - 如何使用扫描器类获取 String 变量的正确输入?

标签 java java.util.scanner

<分区>

我正在学习 Java,并且正在尝试输入程序。当我尝试使用实例向 Scanner 类输入整数和字符串时,出现无法输入字符串的错误。当我先输入字符串然后输入 int 时,它工作正常。当我对 Scanner 类使用不同的对象时,它也能正常工作。但是,当我尝试先输入 int,然后使用相同的实例输入 string 到 Scanner 类时,此方法有什么问题?

import java.util.Scanner;

public class Program {
    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);

        //Scanner input2=new Scanner(System.in);

        System.out.println("Enter your number :" );

        int ip = input.nextInt();

        System.out.println("Your Number is : " + ip);

        System.out.println("Enter Your Name : ");

        String name= input.nextLine();

        System.out.println("Your Next is : " + name);
    }
}

最佳答案

nextInt() 不会等待行尾 - 它会等待 token 的结尾,默认情况下是任何空格。因此,例如,如果您在当前代码的第一行输入“27 Jon”,您将获得 27 的 ipJon姓名

如果您真的想使用完整的一行,您最好也为数字输入调用 input.nextLine(),然后使用 Integer.parseInt 解析该行。抛开其他不谈,这代表了您实际想要做的事情 - 输入两行 文本,并将第一行解析为数字。

就我个人而言,我不是 Scanner 的忠实粉丝 - 它有很多这样的问题。我敢肯定,当它完全按照设计者的预期方式使用时它很好,但要说出那是什么并不总是那么容易。

关于java - 如何使用扫描器类获取 String 变量的正确输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261579/

相关文章:

java - 确保 Entity 有一个非私有(private)的构造函数

Java Audio DataLine.getLevel 总是返回 0

java - 启用/禁用数据问题 -java.lang.NoSuchMethodException

java - 如何检查 FileObject 是否是文件夹?

java - JAX-RS 客户端 : ResponseProcessingException handling

java - 扫描仪无法关闭

java - 如何获取java中扫描仪对象中的文件名?

java - 连续运行编程

java - 如何在java.util.Scanner中匹配两个或多个空格?

java - 取消用户输入