您好我正在尝试编写能够读取带有诗歌的文件的代码。然后它会用“我们”改变每行中的第一个“你”。我一直在尝试使用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");
}
}
答案 0 :(得分:3)
replace
方法返回新行,它无法修改您调用它的对象。所以试试:
line = line.replace("you", "we");
答案 1 :(得分:2)
字符串在Java中是不可变的。这意味着他们永远不会改变您调用的方法返回新的字符串。你需要将它们保存在某个地方。
line = line.replace("you", "we");
在询问有关对它们起作用的方法的问题之前,您应该先咨询Javadocs有关Java中的字符串。一切都解释为here