在Java控制台中预填充输入

时间:2010-06-21 22:28:38

标签: java groovy replace find input-buffer

我正在制作一个基于控制台的Java / Groovy应用程序,它可以在文本文件中进行大量的查找/替换。例如,如果该程序知道您上次将foo替换为bar,则默认情况下您应该知道您可能也希望将foo替换为bar。我的想法是预先填充What would you like to rename this to?提示符的输入字段,这样您就不必不必要地重新键入它,但我找不到一种简单的方法来用Java完成此操作。

这是可能的,如果是的话,这是推荐的做法吗?

2 个答案:

答案 0 :(得分:2)

为什么不假设一个空的输入等于插入的最后一个输入?管理预填stdin ..

会更容易

在任何情况下,如果你打算有一个最近的列表,我会建议你有一个特殊的字符组合来告诉最后一个或前一个等等。

答案 1 :(得分:1)

这个问题有很多有用的方法。您可以只记住用户替换的最后一个值,或者您可以使用最后n个替换来保留缓存,以防用户请求类似的替换。或者您可以忽略之前的输入并强制用户在您需要时提供替换。正确的方法取决于替换操作的频率,如果用户经常更换相同的值,等等。您必须根据您的问题域以及您希望提供给用户的交互类型选择正确的解决方案。

实施这些解决方案很简单。最直观的是将替换缓存保存在一个简单的文本文件中,在启动期间加载它并在关闭时保存缓存。替换缓存也可以序列化到文件中,并且被写为纯文本。