java - 如何使用 bufferedreader 将预定文本设置为用户输入?

标签 java

基本上,我将如何请求用户输入,该输入将从一开始就给出默认值供用户编辑。例如。当默认值“1”已在文本字段中输入时,要求用户给出一个值。

最佳答案

在 BufferedReader 上调用 readLine() 方法不会创建类似于 GUI 应用程序中文本输入的“文本字段”。

理论上,您想要做的事情可以使用诸如 RawConsoleInput 之类的库来实现。 。您必须编写一个方法来跟踪字符堆栈中的“输入”,该字符堆栈被初始化为包含默认值。然后打印默认值,并一一读取按键:

  • 对于大多数按键,请将按下的按键插入堆栈,然后打印它,以便它显示在控制台上。
  • 按下退格键时,从堆栈中弹出并打印 \b 转义序列以在控制台中模拟退格键。
  • 按 Enter 键时,停止读取按键,打印 \n 并以字符串形式返回堆栈内容。

此解决方案不跨平台兼容,因为没有跨平台方法来执行非行缓冲控制台输入,并且某些控制台(例如 Eclipse 中内置的控制台)不处理 \b 正确。

拥有默认选项的更简单且几乎肯定更好的方法就是告诉用户默认值是什么,然后让他们按“Enter”键而不输入任何内容来获取默认值。

关于java - 如何使用 bufferedreader 将预定文本设置为用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58944951/

相关文章:

java - 支持 PropertyChangeListener 的 bean 的标准接口(interface)

java - Selenium + Java |关于如何处理等待和断言的建议

java - 解析 JSON 文件后,如何使用 json-simple 修改 JSON 文件中特定字段的值

java - 从 S3 存储桶获取最新对象?

Java gc - 什么是长生命周期对象?

java - 如何将父类DTO映射到父类实体

java - 如何在 Android 中即将被垃圾收集时将静态成员保留在共享首选项中

java - 使用java poi在excel中过滤列

java - 无法为方法 public Abstract java.util.Optional 创建查询元模型

java - 将 Toast 定位在屏幕上单击的任何位置