1) почему мой код не проходит по пред последнему условию с подсказкой "Убдись, что программа записывает во второй файл содержимое первого файла, где удалены все знаки пунктцации, включая символы новой строки". Ведь на официальном сайт сказано что \w это диапазон [a-zA-Z_0-9].
2) В правильном решении используется тот же алгоритм что и и у меня только при записи пишется
outputFileWriter.write(s.replaceAll("\\p{P}", ""));
Собственно что значит выражение \\p{P} ?
Я ничего похожего про это в документации не нашёл.
package com.javarush.task.task19.task1910;
import java.io.*;
import java.util.ArrayList;
/*
Пунктуация
*/
public class Solution {
public static void main(String[] args) throws IOException {
String fileName1 = "";
String fileName2 = "";
try (BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in)))
{
fileName1 = consoleReader.readLine();
fileName2 = consoleReader.readLine();
}
StringBuilder file1ContentBuilder = new StringBuilder();
try (BufferedReader fileReader = new BufferedReader(new FileReader(fileName1)))
{
while (fileReader.ready())
{
file1ContentBuilder.append(fileReader.readLine());
}
}
String file1Content = file1ContentBuilder.toString();
try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter(fileName2)))
{
for (int i = 0; i < file1Content.length(); i++)
{
if ( (file1Content.charAt(i) + "").matches("\\w") )
{
fileWriter.write(file1Content.charAt(i));
}
}
}
}
}