Вроде и проверил на наличие цифр в начале слова и в конце слова и только цифры. В конце строки куда пишем не добавляет пробел. Что ему еще не нравиться?
строки в тестовом файле
aaaa aaa1aaa 1a a1 ssss45dd 55555
1111 aaaa aaa1565aaa 1a a1 ssss45dd 55555
package com.javarush.task.task19.task1923;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
/*
Слова с цифрами
*/
public class Solution {
public static void main(String[] args) {
ArrayList<String> strWitnNum = new ArrayList<>();
/* строки в тестовом файле
aaaa aaa1aaa 1a a1 ssss45dd 55555
1111 aaaa aaa1565aaa 1a a1 ssss45dd 55555
*/
try (FileReader fr = new FileReader(args[0])) {
BufferedReader reader = new BufferedReader(fr);
while (reader.ready()){
String str = reader.readLine();
String[] splt = str.split(" ");
for (String str1: splt ) {
if (str1.matches("\\b\\D*\\d+\\D*\\b")){
strWitnNum.add(str1);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
try (FileWriter fw = new FileWriter(args[1])) {
for (int i = 0; i < strWitnNum.size(); i++){
fw.write(strWitnNum.get(i));
if (i != strWitnNum.size() - 1) {
fw.append(" ");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}