【问题标题】:Java Scanner add optional user input promptsJava Scanner 添加可选的用户输入提示
【发布时间】:2020-10-20 13:10:36
【问题描述】:

使用 java util Scanner 将一些参数作为可选用户输入的方法是什么?下面是我的代码。但是,对于所有参数,在输入用户输入之前它都会被阻止。

我希望它继续用于第二个参数,以防“输入用户输入然后按下回车键”“或”“当刚刚按下回车键而不输入任何输入”。

public class MainApplication {

    public static void main(String args[])
    {
        Scanner in = new Scanner(System.in);
        
        System.out.println("Enter ordertypes in comma separated format (mandatory): " );
        String orderOrActionTypes = in.next();

        System.out.println("Enter orderAttributes (optional): " );
        String orderAttributes = in.next();

        System.out.println("Enter ActionAttributes (optional): " );
        String actionAttributes = in.next();
    }
}

【问题讨论】:

    标签: java java.util.scanner


    【解决方案1】:

    您仍然可以保留输入,但将其留空。 当需要输入时,用户可以按Enter(结果为空字符串),然后您可以测试用户是否输入了orderAttributes.isEmpty(),然后根据结果执行您需要的操作。

    【讨论】:

    • 不,按 Enter 将无济于事,因为它不会继续,直到输入用户输入才会被阻止。
    • 那是因为你使用的是in.next(),尝试使用in.nextLine(),当你按下Enter时会产生空字符串
    • in.nextLine() 将产生空字符串,即使输入了任何值。如果输入,我想捕获值,如果没有输入,我想捕获空字符串。
    • 您应该将所有输入更改为in.nextLine(),因为in.next() 读取直到遇到空格,否则您的第一个输入会破坏您的下一个输入。将所有内容更改为in.nextLine(),它应该可以工作。
    • 很高兴为您提供帮助,非常感谢您的支持,祝您好运。
    【解决方案2】:

    尝试使用in.nextLine();,它可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      相关资源
      最近更新 更多