java - 第二次无法从用户处获取字符串输入的输入

标签 java

下面是代码:

import java.util.Scanner;
public class Calculate{
  public static void main(String args[])
  {
    int age=0;
    String name="";
    Scanner scan=new Scanner(System.in);

    System.out.println("Please Enter value of your age : ");
    age=scan.nextInt();

    System.out.println("Please Enter value of your name : ");
    name=scan.nextLine();

    System.out.println("Age : "+age+", Name : "+name);
  }
}

现在,这里的问题是从用户那里获取字符串值。

我可以带两个INTEGER[ENTER] 后,用户一一获取值。 但是,如果服用STRING来自用户的值第二次,在我输入年龄变量的值后,它就让我出去了。

如果我首先输入String然后INTERGER比它工作正常,如下所示:(名字,然后年龄):

    System.out.println("Please Enter value of your name : ");
    name=scan.nextLine();

    System.out.println("Please Enter value of your age : ");
    age=scan.nextInt();

可能是什么问题?

最佳答案

问题出在 scan.nextInt() 方法上。它只读取 int 值。因此,当您使用 scan.nextLine() 继续阅读时,您会收到“\n”Enter 键。因此,要跳过此步骤,您必须添加 input.nextLine()

试试这个:

import java.util.Scanner;
public class Main{
  public static void main(String args[])
  {
    int age=0;
    String name="";
    Scanner scan=new Scanner(System.in);

    System.out.println("Please Enter value of your age : ");
    age=scan.nextInt();

    scan.nextLine(); // This line you have to add (It consumes the \n character)


    System.out.println("Please Enter value of your name : ");
    name=scan.nextLine();

    System.out.println("Age : "+age+", Name : "+name);
  }
}

输出

Please Enter value of your age :
20
Please Enter value of your name :
ABC
Age : 20, Name : ABC

关于java - 第二次无法从用户处获取字符串输入的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57195052/

相关文章:

java - 如何使用 Java 中的 REST API 对 Sharepoint 2016 进行身份验证?

java - Apache 扭矩项目的入口点

java - 日期转换无法正常工作

maven-2 - 如何在不编写任何 pom.xml 的情况下从 Maven Central 下载 jars

java - 如何解决 "NoClassDefFoundError: Failed resolution of: Landroidx/core/animation/AnimatorCompatHelper;"

java - 销毁具有层次关系的 fragment

java - 以编程方式完成时, View 不反射(reflect)任何更改

java - ThreadPoolExecutor 和 join()

java - Checkstyle 是否需要编译类?

java - 使用 SQLite 在 android 中获取下一个值