Java 为什么输入行被忽略?

Java 为什么输入行被忽略?,java,string,java.util.scanner,Java,String,Java.util.scanner,我在主应用程序中调用一个方法,为类的构造函数提供一些String变量,但有一个问题:当我调用该方法(运行程序时)时,我的第一行输入被忽略。这是我的密码: 这里我调用main中的方法。 Rent r1=new Rent(); RentProcess(r1); public static void RentProcess(Rent r) { System.out.println("Name and telephone : \n"); r.setNameAnd

我在主应用程序中调用一个方法,为类的构造函数提供一些
String
变量,但有一个问题:当我调用该方法(运行程序时)时,我的第一行输入被忽略。这是我的密码:

这里我调用main中的方法。

Rent r1=new Rent();
RentProcess(r1);
    public static void RentProcess(Rent r) {
        System.out.println("Name and telephone : \n");
        r.setNameAndTel(in.nextLine());
        System.out.println("Rental date : \n");
        r.setRentDate(in.nextLine());
    }
这就是解决问题的方法。

Rent r1=new Rent();
RentProcess(r1);
    public static void RentProcess(Rent r) {
        System.out.println("Name and telephone : \n");
        r.setNameAndTel(in.nextLine());
        System.out.println("Rental date : \n");
        r.setRentDate(in.nextLine());
    }
这是我运行应用程序时的输入线。

选择:
1-->租金
2-->退出
1.
姓名及电话:
租赁日期:
20/2
当我打印上述信息时。

Rent r1=new Rent();
RentProcess(r1);
    public static void RentProcess(Rent r) {
        System.out.println("Name and telephone : \n");
        r.setNameAndTel(in.nextLine());
        System.out.println("Rental date : \n");
        r.setRentDate(in.nextLine());
    }
租金代码:0
姓名和电话
租赁日期:20/2
租金天数:0
租金成本为:0.0
名称:华尔街之狼

尽管您没有填写完整的代码。但似乎您正在使用相同的扫描仪读取整数和字符串,这导致了问题的出现

此行尝试读取包含int的行的剩余部分,该行为空

 r.setNameAndTel(in.nextLine());

在这一行之前添加另一个in.nextLine(),您应该会没事。

您在
RentProcess
方法中使用的
中的
设置在哪里?问题可能出在您阅读
1
的地方。您可能正在.nextInt()中使用
,并且没有清除行尾。请将代码显示在您这样做的地方。您是否有意在
System.out.println()
中的新行之外再添加一行新行?发布代码,这实际上会让我们重现您的问题,但正如Real怀疑论者所说,99%的问题是由于在
nextInt()之后使用
nextLine()
或其他
nextFoo()
方法。你可以在这里了解更多