Прошу скажите, почему не принимает???
package com.javarush.task.task19.task1923;
import java.util.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Слова с цифрами
*/
public class Solution {
public static void main(String[] args) throws Exception {
String fileName1 = args[0];
String fileName2 = args[1];
BufferedReader reader = new BufferedReader(new FileReader(fileName1));
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName2));
while(reader.ready()) {
String data = reader.readLine();
Pattern p = Pattern.compile("\\b\\w*\\d+\\w*?\\b");
Matcher m = p.matcher(data);
while(m.find()) {
writer.write(m.group() + " ");
}
}
reader.close();
writer.close();
}
}
Даже не беря в расчет возможное наличие знаков препинания, регулярка в задаче примет только слова с одним набором цифр, идущих подряд. А как насчет a1b2c3d?Это неправильный коммент Что касается задания, то действительно можно трактовать двояко. С одной стороны по фразе "слова, разделенные пробелом", можно сделать вывод, что в контексте задачи любой набор символов между пробелами является словом. С другой стороны, "слово" - это все-таки общепринятый термин, есть же "словообразующие символы" в регулярных выражениях, и требуется записывать именно слова. Я думаю, что в этой задаче тесты просто не содержат знаков препинания, и можно решать и так и эдак. Ну и на месте валидатора я бы не принял задачу хотя бы из-за одного только необрезанного пробела после последнего слова. Сколько можно так топорно и кусками писать в файл, почему сначала не собрать итоговую строку при помощи StringJoiner, например?