我有一个文件(file1.txt)包含:
word word word2 word word1
word2 word word 1
另一个文件(file2.txt)包含:
word1-replacement1
word2-replacement2
我需要一个方法来查找文件2中的单词是否包含在文件1中,如果包含这些单词,请用替换词替换这些单词。
我已经有以下内容:
BufferedReader br = new BufferedReader(new FileReader("file2.txt"));
BufferedReader br2 = new BufferedReader(new FileReader("file1.txt"));
String line;
String line2;
while ((line = br.readLine()) != null) {
String vars[] = line.split("-");
String varname = vars[0];
String replacement = vars[1];
while ((line2 = br2.readLine()) != null) {
if(line2.contains(varname)) {
line2.replace(varname, replacement);
}
}
}
这段代码的问题是,它只读取file1的第一行。
最终输出应如下所示:
word word replacement2 word replacement1
replacement2 word replacement1
感谢您的帮助:)
2条答案
按热度按时间wnvonmuf1#
您可以从创建替换Map开始,如下所示:
然后使用Map替换另一个文件中的单词。
s1ag04yj2#
我建议首先将第二个文件读入java内存,并将数据作为键值存储在hashmap中。然后,遍历第一个文件中的行,并进行任何匹配的替换。
请注意,我打电话给
String#replaceAll
每个词周围都有单词边界。这很重要,因为,例如,没有边界word1
会匹配像这样的东西aword1term
,也就是说,它将匹配word1
甚至作为其他单词的子串。