1

我是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");
        }
    }
}
4

1 回答 1

1

正如评论所述,“.java”文件和任何其他文本文件之间应该没有区别。

我怀疑问题在于您没有意识到您的编辑器应用程序实际上被编码为执行正则表达式搜索/替换,而不是简单的字符串搜索/替换。(这就是String.replaceAll(...)……)如果无意中提供了一个包含正则表达式元字符的“要替换的字符串”,您可能会发现它不匹配,或者它在您不期望的地方匹配。

于 2012-08-25T15:11:17.993 回答