0

嗨,我正在尝试编写代码来读取包含一首诗的文件。然后它将每行中的第一个“你”更改为“我们”。我一直在尝试使用replaceFirst()、replace()、replaceAll();然而,没有一个人能够取代任何东西。

 import java.io.*;
import java.util.Scanner;//imports

public class TextEditorTester 
{
    private static boolean line_change;

   public static void main(String[] args) throws FileNotFoundException
   {
       String line = "";
       File inFile = new File("OldPoem.txt");
       Scanner in = new Scanner(inFile);
       PrintWriter out = new PrintWriter("NewPoem.txt");
       while(in.hasNextLine()){
           line = in.nextLine();
           line.replace("you", "we");
           out.println(line);
       }
       out.close();
       File newFile = new File("NewPoem.txt");
       Scanner newOne = new Scanner(newFile);
       System.out.println(newOne.nextLine());
       System.out.println("Expected: Have we ever tried to enter the long black branches of other lives");
   }
}
4

2 回答 2

3

replace方法返回新行,它不能修改您调用它的对象。所以试试:

line = line.replace("you", "we");
于 2013-09-16T04:05:47.787 回答
2

字符串在 Java 中是不可变的。这意味着他们永远不会改变。您调用的方法返回新字符串。您需要将它们保存在某个地方。

line = line.replace("you", "we");

在询问有关作用于它们的方法的问题之前,您应该查阅有关 Java 中字符串的 Javadocs。一切都在这里解释

于 2013-09-16T04:06:05.683 回答