-2

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

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

1 回答 1

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

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

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

如果您的行 equals"CONTRACTNUMBER"并且您希望它是"NEW",您可以简单地编写line = "NEW";,否则,如果您想替换"CONTRACTNUMBER"当前行中的 every ,您可能应该在您的条件下使用该contains()方法。if


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

于 2013-07-27T22:05:25.213 回答