我想在java的帮助下进行搜索和替换。
我有包含文件名及其内容的TreeMap。我有另一个包含单词及其含义的TreeMap。
我想搜索文件内容并用其含义替换找到的单词。
由于
P.S:这不是任务。我用简单的阅读文件和替换功能。但是,我需要快速的方法来做到这一点。任何示例代码或参考。将不胜感激。
答案 0 :(得分:1)
让我给你一些一般性的开发建议,以便在遇到问题时提供帮助。
首先,记下一个列表 - 您认为可以解决问题的算法。在你的情况下尝试:
现在,进入每个步骤并加强它。对于第一个你应该
对于您目前无法想象的“正在编码”的每个步骤执行此操作,直到您可以了解如何执行每个步骤。
完成此操作后,我建议编写一个非常基本的应用程序,从列表中执行一项操作 - 例如,打开一个文件。在这里写一个junit测试或在你的主要编写测试是非常有帮助的。确保它打开文件并可以从中读取。
一旦你到了这一步,继续添加你的代码 - 只需添加一点然后重新编译/重新测试。重新测试每一行,直到你编码了5年,然后去每2或3行。
不断更新测试以测试代码。如果你打破旧的测试重写它,不要扔掉它。
迭代。
我希望这会有所帮助。
答案 1 :(得分:0)
基础可能是:
答案 2 :(得分:0)
此示例适用于实现地图界面的所有类,而不仅仅是TreeMap:
public void searchAndReplace(Map<File, byte[]> fileToContentMap, Map<String, String> wordToDefinitionMap) {
// for each file
for (File f : fileToContentMap.keySet()) {
// get the file's contents
String contents = new String(fileToContentMap.get(f));
// replace the contents with definitions
for (String word : wordToDefinitionMap.keySet()) {
contents = contents.replaceAll(word, wordToDefinitionMap.get(word));
}
// make sure to update the contents in the array
fileToContentMap.put(f, contents.getBytes());
// note, remember to update the physical file as well
}
}
答案 3 :(得分:0)
我不会使用TreeMap存储所有文件 + 的内容。
无论如何你需要阅读内容,所以首先存储所有内容 + 没有任何好处。
一次读取一个文件,处理并保存。
看一下Java的NIO包。在NIO examples page上有一个搜索文件列表的例子(Grep.java)。
+ 如果不需要{others}