问题标签 [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.
java - 从 Windows 命令行读取用户输入仅从第二个字母打印 - Java
当我在 Windows 命令行中运行以下行时,它不采用第一个字母。如果我输入22
它只打印'2'
java - 访问相同的系统输入流
我想在 Java 的 2 个不同类中访问相同的输入流。因此,一个类期望来自 System.in 的输入,而另一个类则写入 System.in。这可能吗?
因此,假设我的第一个类 Test.java 需要来自 System.in 的输入:
第二个类写入相同的输入:
上面的代码片段目前不起作用,因为我猜每个类都有自己的输入流。我该如何处理?
java - Java,在再次要求输入之前执行两次循环
我只是在磨练我的 Java 技能,我写了这段代码来玩键盘输入并执行 while 循环。
问题是,当我测试它时,“while 循环”在要求输入之前运行了两次,而不仅仅是一次:
有人可以澄清这种情况吗?
java - Java System.in 在 if else 语句中?
我希望能够将 System.in 输入实现到 if else 语句中,但还没有完全找到方法,我是 java 的初学者,我正在创建一个基本的计算器。
基本上我只想要 if () 括号之间的 System.in 。
java - 爪哇。System.in.read() 和控制台中的“\n”
我目前正在创建一个 java 程序,它应该再次读取控制台并打印出来。代码如下所示:
问题是,如果您在控制台下方键入此文本,您将打印第一行,但由于它"\n"
在“打印”一词之后,程序不会在没有我手动按 Enter 的情况下打印第二行
当我按下回车键时,得到第二行,结果是:
这不是它通常的样子。
如果第一行没有自动打印,我会更喜欢。我想按 Enter 并同时获取两条线。可以while ((i = System.in.read()) != -1)
像我一样使用吗?
java - 为什么我的带有 system.in.read() 的 while 循环不能在控制台中获得最后一行?
我遇到了关于 System.in.read() 的问题。我想打印粘贴到控制台的所有内容。我的代码如下所示:
问题是,例如,如果您将三行粘贴到控制台中,程序将打印前两行,而不是第三行。这是为什么?如果我按回车键,它会打印第三个,但第二行和第三行之间有很大的空间。
我还尝试将每个字符存储在一个字符串中,然后在循环之后打印整个字符串,但循环永远不会结束。他们是停止这个特定循环的一种方法吗(我不知道用户将粘贴多少行)
java - System.in 停止等待下一行并打印输出
我刚刚开始在 Hackerrank 中解决问题,我的代码甚至没有通过示例测试用例,它得到“运行时错误”。据说,它等待标准输入上的换行符,这就是为什么不输出结果。
例如,对于以下输入情况:1 1 1 1 1 1 1 1 1 1 1 ........
它将等到光标移动到下一行。
java - Docker Java 应用程序无法从控制台获取输入
我正在尝试为我的 java 应用程序创建一个 docker 映像。在启动时,需要为该应用程序提供密码(当前通过控制台)。
我尝试了几种获取输入的方法,但都失败了。这是 docker 的限制吗?如果是,有解决方法吗?
对于这个片段:
System.console()
正在回归null
。
对于这个片段:
输入被自动跳过(导致字符串密码为空),程序继续执行,就好像没有请求输入一样。(密码是null
)
对于这个片段:
我明白了
我正在使用我的图像中运行程序docker run test/plaintest1
我的dockerfile如下
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
java - 如何在不关闭底层 System.in 的情况下关闭扫描仪?
如果我关闭一个扫描仪对象并创建一个新对象并尝试读取更多输入,则会出现NoSuchElementException
异常。
我的代码工作正常,但如果我不关闭扫描仪,它会给我一个警告。但是,如果我关闭它以消除警告,我也会关闭System.in
......我该如何避免这种情况?
另外,不关闭扫描仪有什么后果吗?
编辑:这是我的代码:
这是 NameAddressExists() 方法:
这是 PanNumberExists() 方法:
这些方法是从以下 main() 方法调用的:
如您所见,我首先调用 NameAddressExists() 方法,在该方法中我打开、使用和关闭一个Scanner
命名的“sc”。这工作正常,并给了我正确的输出。接下来,我调用 PanNumberExists() 方法,在该方法中我打开另一个Scanner
名为 's' 并尝试使用它从用户那里获取一些输入。这是我收到NoSuchElementException
异常的地方。如果我Scanner
在 NameAddressExists() 方法中打开“sc”,则不会收到此错误。