我正在製作基於控制檯的Java/Groovy應用程序,它在文本文件中執行了大量查找/替換操作。如果程序知道你上次用bar
替換了foo
,那麼默認情況下你應該知道你可能想用bar
代替下一個foo
。我的想法是預先填充What would you like to rename this to?
提示符的輸入字段,以便您不必不必要地重新輸入它,但我找不到在Java中執行此操作的簡單方法。在Java控制檯中預填充輸入
這是可能的,如果是的話,這是一個建議的做法嗎?
我正在製作基於控制檯的Java/Groovy應用程序,它在文本文件中執行了大量查找/替換操作。如果程序知道你上次用bar
替換了foo
,那麼默認情況下你應該知道你可能想用bar
代替下一個foo
。我的想法是預先填充What would you like to rename this to?
提示符的輸入字段,以便您不必不必要地重新輸入它,但我找不到在Java中執行此操作的簡單方法。在Java控制檯中預填充輸入
這是可能的,如果是的話,這是一個建議的做法嗎?
爲什麼不假設一個空輸入等於最後一個輸入插入?這將是非常方便您管理預填充在任何情況下stdin
..
,如果你計劃有一個最近的名單,我建議你有一個特殊的字符組合,告訴最後一個或以前的等。
這個問題有很多有用的方法。您只能記住用戶替換的最後一個值,或者您可以使用最後n個替換來維護緩存,以防用戶請求類似的替換。或者您可以忽略之前的輸入並強制用戶在每次需要時提供替換。正確的方法取決於替換操作的頻率,如果用戶經常替換相同的值等。您必須根據問題域以及要提供給用戶的交互類型來選擇正確的解決方案。
實施這些解決方案很簡單。最直觀的方法是將替換緩存保存在一個簡單的文本文件中,在啓動過程中加載並在關機時保存緩存。替換緩存也可以被序列化爲文件,而不是被寫爲純文本。
然而,我的問題是不知道如何從以前的匹配地圖 - >替換,而是從找到匹配並將前一個替換插入輸入緩衝區。如果新的替換大部分是相同的,但是最後附加的數字不同,這將特別有用。 – 2010-06-22 17:07:09
這實際上是當前的默認行爲。然而,我認爲,預填充輸入字段比佔用更多空間說「找到Y,先前的值爲X,按回車來使用它」會更有效。 – 2010-06-22 17:01:16