Java Scanner 添加可选的用户输入提示

Posted

技术标签:

【中文标题】Java Scanner 添加可选的用户输入提示【英文标题】:Java Scanner add optional user input prompts 【发布时间】: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();
    

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

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

【讨论】:

以上是关于Java Scanner 添加可选的用户输入提示的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么用scanner

关于如何往Jupyter notebook添加可选的kernel

如果之前有任何为空,则从可选的有序文本框中移动值

java 编写一个程序,提示用户输入0~15之间的一个整数,显示其对应的十六进制数

Java流程控制

找不到配置文件“secrets.json”并且不是可选的(.NET 6)