问题标签 [system.in]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
103 浏览

java - 从 Windows 命令行读取用户输入仅从第二个字母打印 - Java

当我在 Windows 命令行中运行以下行时,它不采用第一个字母。如果我输入22它只打印'2'

0 投票
1 回答
63 浏览

java - 访问相同的系统输入流

我想在 Java 的 2 个不同类中访问相同的输入流。因此,一个类期望来自 System.in 的输入,而另一个类则写入 System.in。这可能吗?

因此,假设我的第一个类 Test.java 需要来自 System.in 的输入:

第二个类写入相同的输入:

上面的代码片段目前不起作用,因为我猜每个类都有自己的输入流。我该如何处理?

0 投票
4 回答
2046 浏览

java - Java,在再次要求输入之前执行两次循环

我只是在磨练我的 Java 技能,我写了这段代码来玩键盘输入并执行 while 循环。

问题是,当我测试它时,“while 循环”在要求输入之前运行了两次,而不仅仅是一次:

有人可以澄清这种情况吗?

0 投票
1 回答
590 浏览

java - Java System.in 在 if else 语句中?

我希望能够将 System.in 输入实现到 if else 语句中,但还没有完全找到方法,我是 java 的初学者,我正在创建一个基本的计算器。

基本上我只想要 if () 括号之间的 System.in 。

0 投票
1 回答
3230 浏览

java - 爪哇。System.in.read() 和控制台中的“\n”

我目前正在创建一个 java 程序,它应该再次读取控制台并打印出来。代码如下所示:

问题是,如果您在控制台下方键入此文本,您将打印第一行,但由于它"\n"在“打印”一词之后,程序不会在没有我手动按 Enter 的情况下打印第二行

当我按下回车键时,得到第二行,结果是:

这不是它通常的样子。

如果第一行没有自动打印,我会更喜欢。我想按 Enter 并同时获取两条线。可以while ((i = System.in.read()) != -1)像我一样使用吗?

0 投票
1 回答
983 浏览

java - 为什么我的带有 system.in.read() 的 while 循环不能在控制台中获得最后一行?

我遇到了关于 System.in.read() 的问题。我想打印粘贴到控制台的所有内容。我的代码如下所示:

  1. 问题是,例如,如果您将三行粘贴到控制台中,程序将打印前两行,而不是第三行。这是为什么?如果我按回车键,它会打印第三个,但第二行和第三行之间有很大的空间。

  2. 我还尝试将每个字符存储在一个字符串中,然后在循环之后打印整个字符串,但循环永远不会结束。他们是停止这个特定循环的一种方法吗(我不知道用户将粘贴多少行)

0 投票
1 回答
271 浏览

java - System.in 停止等待下一行并打印输出

我刚刚开始在 Hackerrank 中解决问题,我的代码甚至没有通过示例测试用例,它得到“运行时错误”。据说,它等待标准输入上的换行符,这就是为什么不输出结果。

例如,对于以下输入情况:1 1 1 1 1 1 1 1 1 1 1 ........

它将等到光标移动到下一行。

这是问题的链接:https ://www.hackerrank.com/challenges/find-point

0 投票
2 回答
3490 浏览

java - Docker Java 应用程序无法从控制台获取输入

我正在尝试为我的 java 应用程序创建一个 docker 映像。在启动时,需要为该应用程序提供密码(当前通过控制台)。

我尝试了几种获取输入的方法,但都失败了。这是 docker 的限制吗?如果是,有解决方法吗?

对于这个片段:

System.console()正在回归null

对于这个片段:

输入被自动跳过(导致字符串密码为空),程序继续执行,就好像没有请求输入一样。(密码是null

对于这个片段:

我明白了

我正在使用我的图像中运行程序docker run test/plaintest1

我的dockerfile如下

0 投票
0 回答
238 浏览

java - 如何在交互模式下使用 ExpectJ 发送控制字符?

一段时间以来,我一直在使用expectJ通过 ssh (jsch) 自动执行一些管理任务。它一直运作良好。

现在我面临一个接受由控制字符触发的命令的界面。比如CTRL+B。

对于非交互式自动化任务,如果我只发送 unicode 字符,效果很好,比如

问题是 expectJ “交互模式”,它将 stdin 和 stdout 连接到两个线程循环中(在一个名为 的未记录类expectj.StreamPiper中,正是这样做的,从一个流到另一个流的管道)。

从命令行运行,我只是不知道如何从 Java 命令行 (stdin) 发送 CTRL-B。

所以我的问题是:如何System.in在交互模式下将控制字符发送到 expectJ?

附言。似乎一种解决方法是以某种方式“重新映射”这些控制字符。例如,一个命令由 CTRL-Z 触发,但在 unix 环境中发出 CTRL-Z 将立即将当前进程发送到后台。在这种情况下,我该怎么做?

更新——我一直在用这个。我希望有更好的方法(当然,我不是在谈论重构这段代码)。片段来自expectj.StreamPiper

0 投票
2 回答
3302 浏览

java - 如何在不关闭底层 System.in 的情况下关闭扫描仪?

如果我关闭一个扫描仪对象并创建一个新对象并尝试读取更多输入,则会出现NoSuchElementException异常。

我的代码工作正常,但如果我不关闭扫描仪,它会给我一个警告。但是,如果我关闭它以消除警告,我也会关闭System.in......我该如何避免这种情况?

另外,不关闭扫描仪有什么后果吗?

编辑:这是我的代码:

这是 NameAddressExists() 方法:

这是 PanNumberExists() 方法:

这些方法是从以下 main() 方法调用的:

如您所见,我首先调用 NameAddressExists() 方法,在该方法中我打开、使用和关闭一个Scanner命名的“sc”。这工作正常,并给了我正确的输出。接下来,我调用 PanNumberExists() 方法,在该方法中我打开另一个Scanner名为 's' 并尝试使用它从用户那里获取一些输入。这是我收到NoSuchElementException异常的地方。如果我Scanner在 NameAddressExists() 方法中打开“sc”,则不会收到此错误。