替换方法的文本编辑问题

时间:2013-07-27 22:01:50

标签: java

我正在尝试阅读文本文件,编辑其中的一些内容并将其写入另一个文本文件。编辑时我正在寻找某些关键字。这些关键字(如果存在)必须由新的关键字替换。代码正在读写,但关键字没有被替换。我不知道为什么。这是代码:

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();
}

1 个答案:

答案 0 :(得分:1)

line.replace("CONTRACTNUMBER","NEW");

不会做任何事情,因为replace()不会更改字符串(它不能,因为Java中的字符串是不可变的)。它创建并返回一个新的并返回它。你可能正在寻找

line = line.replace("CONTRACTNUMBER","NEW");

如果您的行等于"CONTRACTNUMBER"并且您希望它为"NEW",则只需编写line = "NEW";,否则,如果您想要替换当前的"CONTRACTNUMBER"行您应该在contains()条件下使用if方法。


此外,如果您正在处理字符串,则可以使用.equals()代替.contentEquals()