当 System.out.print("Calculator ") 后面跟着 Scanner

所以我想制作一个命令行计算器,它在“Calculator”一词之后接受多个参数。但使用以下代码我无法实现它。在这两种方法中,gradle 都会在显示单词“Calculator”之前等待读取该行。


使用扫描仪


System.out.print("Calculator ");

Scanner sc = new Scanner(System.in);

String inputString;

inputString = sc.nextLine();

String[] args = inputString.split( "\\s+" );

使用BufferReader


BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("Calculator ");

String str= br.readLine();

String[] args = str.split( "\\s+" );

但是 System.out.println("Calculator ") 显示该单词没有任何问题。但它并不在一条线上。所以它不能按我想要的方式工作。更改代码行的顺序也没有帮助。


System.Console().printf() 也不是一个选项,因为我使用的是 Intellij IDEA。那么有人可以帮我解决这个问题,以便我可以获得内联输入阅读器。我还尝试通过在方法中单独实现来同步打印方法。那效果不太好。


最后我想要实现的是以下格式


计算器 最大 12 23 25 45


这里斜体是要读取的输入。

粗体部分应由程序打印。

这是完整的代码

https://img1.sycdn.imooc.com/654214db00010d6e05130200.jpg

在进入之前输入控制台..

https://img1.sycdn.imooc.com/654214eb00014f4104110167.jpg

输入后输入

https://img1.sycdn.imooc.com/654214f70001a3e403740231.jpg

最新更新

所以我尝试对 Maven 项目做同样的事情。当我在 Intellij 中处理 Maven 项目时,上述两种方法都运行得很好。

因此,这肯定与 gradle 运行项目的方式有关。我想知道这种情况是否有机会发生?



慕莱坞森
浏览 59回答 3
3回答

慕姐8265434

我能够通过将 gradle 设置修改为:文件 --> 设置 --> 构建、执行、部署 --> Gradle 来获得输出。有一个下拉菜单 Build and Run using: 其中包含 Gradle 和 IntelliJ IDEA 选项。等级为默认值。我选择了 IntelliJ IDEA,我的 System.outs 又恢复了活力。 

慕无忌1623718

这是使用 IntelliJ IDEA gradle 插件时的一个错误,该错误很少受到关注,以至于 IntelliJ 团队似乎没有动力去解决这个问题。我能想到的唯一解决方法是跳过 gradle 插件并直接从 IntelliJ IDEA 调用 gradle 包装器。为此,您可以使用我的 IntelliJ IDEA 插件Gradle Run with Arguments(GitHub 链接),或者手动创建一个运行配置,以便在您想要运行程序时调用 gradle 包装器。我建议您先尝试我的插件,看看是否有帮助。要手动创建调用 gradle 包装器的运行配置,最简单的方法是通过JAR ConfigurationIntelliJ IDEA 中的。为了实现这一点,您还需要修补gradle/wrapper/gradle-wrapper.jar并MANIFEST附加一个Main-Class条目。通过这种方式,您可以从 IntelliJ IDEA 启动 gradle 包装器并享受System.out.print(...).限制:此方法不允许您使用内置调试器功能,因为 IntelliJ IDEA 尝试调试 gradle 包装器本身而不是您的实际程序。

汪汪一只猫

System.out.flush()在完成任何输出后开始处理输入之前调用。IDE 通过管道连接到进程,并且不会在每个输出上自动刷新。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java