【问题标题】:Issues with regex in java [duplicate]java中的正则表达式问题[重复]
【发布时间】:2020-05-08 11:15:35
【问题描述】:

我开始学习正则表达式,因为我发现它非常有用。

我有一个要解决的任务,但我的输出失败。 从键盘读取两个文件,读取第一个文件并将所有点更改为感叹号并将第一个文件的内容保存到第二个文件。我的解决方案:

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String file1 = reader.readLine();
        String file2 = reader.readLine();
        reader.close();

        FileReader fileReader = new FileReader(file1);
        FileWriter fileWriter = new FileWriter(file2);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

        String a;
        while ((a = bufferedReader.readLine()) != null) {
            a.replaceAll("\\.","\\!");
            bufferedWriter.write(a);
        }

        bufferedReader.close();
        bufferedWriter.close();
    }
}

【问题讨论】:

  • a = a.replace(".","!"); 如果你需要用!替换一个点,思维字符串是不可变的。
  • a = a.replaceAll("\\.","!");
  • 天哪,我从来没有注意到这一点。谢谢它的工作!

标签: java regex bufferedreader filereader bufferedwriter


【解决方案1】:

我认为不需要反斜杠。试试.!

【讨论】:

  • 它在 OP 代码中不起作用。 OP 正在使用.replaceAll,如果您在. 之前删除\,它将匹配除换行符之外的任何字符。
猜你喜欢
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 1970-01-01
相关资源
最近更新 更多