ПОДСКАЗКА тем у кого будет затык: регулярка не проходит, нужно использовать простой перебор...(
package com.javarush.task.task19.task1923;
/*
Слова с цифрами
*/
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws Exception{
BufferedReader readerFromFile = new BufferedReader(new FileReader(args[0]));
BufferedWriter writerToFile = new BufferedWriter(new FileWriter(args[1]));
String current = "";
while ((current = readerFromFile.readLine()) != null){
Pattern p = Pattern.compile("\\b([a-zA-Z]+\\d+)+.*?\\b | \\b(\\d+[a-zA-Z]+)+.*?\\b |\\b[a-zA-Z]*\\d+[a-zA-Z]++\\b|\\b[a-zA-Z]+\\d+[a-zA-Z]*\\b|\\b[a-zA-Z]+\\d+[a-zA-Z]+\\b");
Matcher matcher = p.matcher(current);
while (matcher.find()){
writerToFile.write(matcher.group() +" ");
}
}
readerFromFile.close();
writerToFile.close();
}
}
/*
Слова с цифрами
В метод main первым параметром приходит имя файла1, вторым - файла2.
Файл1 содержит строки со словами, разделенные пробелом.
Записать через пробел в Файл2 все слова, которые содержат цифры, например, а1 или abc3d.
Закрыть потоки.
Требования:
1. Программа НЕ должна считывать данные с консоли.
2. Программа должна считывать содержимое первого файла (используй FileReader c конструктором String).
3. Поток чтения из файла (FileReader) должен быть закрыт.
4. Программа должна записывать во второй файл все слова из первого файла которые содержат цифры (используй FileWriter).
5. Поток записи в файл (FileWriter) должен быть закрыт.
*/