我正在尝试阅读文本文件,编辑其中的一些内容并将其写入另一个文本文件。编辑时我正在寻找某些关键字。这些关键字(如果存在)必须由新的关键字替换。代码正在读写,但关键字没有被替换。我不知道为什么。这是代码:
public static void main(String args[]) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("C:/Users/lenov/workspace/TemplateAutomation/src/input/testinput.txt"));
PrintWriter writer = new PrintWriter("C:/Users/lenov/workspace/TemplateAutomation/src/output/testoutput.txt", "UTF-8");
String line;
while ((line = in.readLine()) != null) {
if (line.contentEquals("CONTRACTNUMBER")) {
line.replace("CONTRACTNUMBER", "NEW");
}
System.out.println("System.out.println(\"" + line + "\");");
writer.println("System.out.println(\"" + line + "\");");
}
writer.close();
}
答案 0 :(得分:1)
line.replace("CONTRACTNUMBER","NEW");
不会做任何事情,因为replace()
不会更改字符串(它不能,因为Java中的字符串是不可变的)。它创建并返回一个新的并返回它。你可能正在寻找
line = line.replace("CONTRACTNUMBER","NEW");
如果您的行等于"CONTRACTNUMBER"
并且您希望它为"NEW"
,则只需编写line = "NEW";
,否则,如果您想要替换当前的"CONTRACTNUMBER"
行您应该在contains()
条件下使用if
方法。
此外,如果您正在处理字符串,则可以使用.equals()
代替.contentEquals()
。