我是java的初学者。我有一个字符串替换代码,用户在其中指定文件路径、要替换的字符串和要替换的字符串。代码只适用于.txt或.in文件。但是,当我试图编辑一个.java文件(我打算为其编写代码)时,不知何故它无法编辑它。有人能告诉我问题出在哪里吗?我的代码如下:
import java.io.*;
import java.util.*;
public class StringReplace{
public static void main(String[] args) throws IOException
{
System.out.println("Enter path of file:");
Scanner sc=new Scanner(System.in);
String path=sc.nextLine();
File f=new File(path);
if (f.canRead())
{
System.out.print("Now enter the string to replace:_");
String oldString=sc.nextLine();
System.out.print("Now enter the string to replace with:_");
String newString=sc.nextLine();
StringBuffer sb=new StringBuffer();
sc=new Scanner(f);
sc.useDelimiter("");
while(sc.hasNext())
{
sb.append(sc.next());
}
sc.close();
FileWriter fw=new FileWriter(path);
PrintWriter pw=new PrintWriter(fw,true);
System.out.println(sb);
pw.println(sb.toString().replaceAll(oldString, newString));
fw.close();
pw.close();
System.out.print("DONE!");
}
else
System.out.println("File Does Not Exist");
}
}
}
1条答案
按热度按时间mlnl4t2r1#
作为注解状态,“.java”文件和任何其他文本文件之间应该没有区别。
我怀疑问题在于,您还没有意识到编辑器应用程序实际上是编写为执行正则表达式搜索/替换的,而不是简单的字符串搜索/替换(那是什么
String.replaceAll(...)
如果无意中提供了一个包含regex元字符的“要替换的字符串”,您可能会发现它不匹配或者它在您不期望的地方匹配。