我正在制作一个基于控制台的 Java/Groovy 应用程序,它在文本文件中进行大量查找/替换。例如,如果程序知道您上次替换为,则默认情况下它应该知道您可能也想替换foo
下一次。我的想法是预先填充提示的输入字段,这样您就不必不必要地重新键入它,但我找不到在 Java 中执行此操作的简单方法。bar
foo
bar
What would you like to rename this to?
这是可能的吗?如果可以,这是否是推荐的做法?
我正在制作一个基于控制台的 Java/Groovy 应用程序,它在文本文件中进行大量查找/替换。例如,如果程序知道您上次替换为,则默认情况下它应该知道您可能也想替换foo
下一次。我的想法是预先填充提示的输入字段,这样您就不必不必要地重新键入它,但我找不到在 Java 中执行此操作的简单方法。bar
foo
bar
What would you like to rename this to?
这是可能的吗?如果可以,这是否是推荐的做法?
为什么不假设空输入等于最后插入的输入?管理预填充stdin
..
无论如何,如果您打算有一个最近的列表,我建议您有一个特殊的字符组合来告诉最后一个或上一个等等。
有很多有用的方法可以解决这个问题。您可以只记住用户替换的最后一个值,或者您可以保留一个包含最后 n 个替换的缓存,以防用户请求类似的替换。或者您可以忽略之前的输入,并在每次需要时强制用户提供替换。正确的方法取决于替换操作的频率、用户是否经常替换相同的值等。您必须根据您的问题域和您想要提供给用户的交互类型来选择正确的解决方案。
实施这些解决方案很简单。最直观的是将替换缓存保存在一个简单的文本文件中,在启动时加载它并在关闭时保存缓存。替换缓存也可以序列化为文件,以纯文本形式写入。