BufferedReader替换循环

all*_*skd 1 java

我正在努力使这项工作,我不明白为什么它不起作用,因为它对我有意义,但它似乎没有意义的Java.

当您阅读代码时,我期望_NAME被TEST替换,同时保持文本的相同结构(保持\n)以便稍后保存(尚未完成)

我也使用ArrayList存储它,但替换从未起飞,所以我很无能为力

    try {
       BufferedReader reader = new BufferedReader (new InputStreamReader (
       new FileInputStream (temp), "utf-8"));
       String line = reader.readLine();
       StringBuffer text = new StringBuffer();

    while(line != null) {
        line.replace("[_NAME]", "TEST");
        Logger.info(line);
        line = reader.readLine();

        }
    reader.close();


    } catch(FileNotFoundException ex) {

    } catch(UnsupportedEncodingException ex) {

    } catch(IOException ex ) {}
Run Code Online (Sandbox Code Playgroud)

mdr*_*drg 6

正确的是

line = line.replace("_NAME", "TEST");
Run Code Online (Sandbox Code Playgroud)

如果您使用的支架,您指定的字符作为个人比赛(_,N,A,ME),并要更换整场比赛.

其次,该replace方法返回一个包含已修改String的新String.请记住,Java中的字符串是不可变的,因此没有修改String的方法会修改输入对象,它们将始终返回一个新对象.