Почему не пропускает? Вывод соответствует заданию, все слова с любыми символами пишутся в файл. Кроме тех что состоят только из букв.
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(fr);
FileWriter fw = new FileWriter(args[1]);
BufferedWriter writer = new BufferedWriter(fw);
while (reader.ready()){
String line = reader.readLine().replaceAll("\\b[^0-9, ]+\\b", "");
writer.write(line);
}
fr.close();
reader.close();
writer.close();
fw.close();
}
Такой вариант тоже не пропускает:
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(fr);
List<String> list = new ArrayList<>();
StringBuilder newLine = new StringBuilder("");
FileWriter fw = new FileWriter(args[1]);
BufferedWriter writer = new BufferedWriter(fw);
while (reader.ready()){
String[] str = reader.readLine().split(" ");
Pattern p = Pattern.compile(".*\\d+.*");
for(String s: str){
Matcher m = p.matcher(s);
if(m.find()){
newLine = new StringBuilder().append(newLine).append(s).append(" ");
}
}
list.add(newLine.toString());
}
fr.close();
reader.close();
FileWriter fw = new FileWriter(args[1]);
BufferedWriter writer = new BufferedWriter(fw);
for (int i = 0; i<list.size(); i++){
writer.write(list.get(i).trim());
}
writer.close();
fw.close();
}
package com.javarush.task.task19.task1923;
/*
Слова с цифрами
C:\Users\Владимир\Desktop\data1.txt
*/
import java.io.*;
import java.util.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(fr);
List<String> list = new ArrayList<>();
StringBuilder newLine = new StringBuilder("");
FileWriter fw = new FileWriter(args[1]);
BufferedWriter writer = new BufferedWriter(fw);
while (reader.ready()){
String line = reader.readLine().replaceAll("\\b[^0-9, ]+\\b", "");
writer.write(line);
/*String[] str = reader.readLine().split(" ");
Pattern p = Pattern.compile(".*\\d+.*");
for(String s: str){
Matcher m = p.matcher(s);
if(m.find()){
newLine = new StringBuilder().append(newLine).append(s).append(" ");*/
}
// }
// list.add(newLine.toString());
// }
fr.close();
reader.close();
/* FileWriter fw = new FileWriter(args[1]);
BufferedWriter writer = new BufferedWriter(fw);
for (int i = 0; i<list.size(); i++){
writer.write(list.get(i).trim());
}*/
writer.close();
fw.close();
}
}