package com.javarush.task.task19.task1923;
/*
Слова с цифрами
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
String filename1 = args[0];
String filename2 = args[1];
FileReader fr = new FileReader(filename1);
BufferedReader bfReader = new BufferedReader(fr);
FileWriter fw = new FileWriter(filename2);
BufferedWriter bfWriter= new BufferedWriter(fw);
while (bfReader.ready()){
String line =bfReader.readLine().replaceAll("[\\.\\,\\!\\?]","");
String tmp = line.replaceAll("(^|[\\s])([^0-9]+)([\\s]|$)"," ").trim();
bfWriter.write(tmp);
}
bfWriter.flush();
bfWriter.close();
bfReader.close();
}
}
Продолжаю мучать РВ. задача в две строчки с помощью РВ. убил не мало времени, чтобы найти эту запись. Текст взял случайный, т.е. не подготовленный в котором входной файл содержит разные знаки препинания. Затем подготовил его для РВ - убрав все(или почти все) знаки препинания.
После чего убираю все слова не содержащие цифры и обрезаю лишние пробелы в начале и в конце строки.
тестируемый текст
0По кодировке1 Для пр2овероч2ных 3файлов3 444 используйте Notepad5 и ставте UTF6 w/o BO77M. И проблем возникнуть не должно. Довольно много кров8и и слез этот вопрос попил у меня во время изучения Си9. И, кстати, для гитхаба эта коди10ровка так же 11подходит. 8-8 8*8
Получаемый в файл
0По кодировке1 пр2овероч2ных 3файлов3 444 Notepad5 UTF6 BO77M кров8и Си9 коди10ровка 11подходит 8-8 8*8
Ответ валидатора
Убедись, что программа записывает во второй файл все слова из первого файла которые содержат цифры.
Вопрос, что я не учел?package com.javarush.task.task19.task1923;
/*
Слова с цифрами
*/
import java.io.*;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
String filename1 = args[0];
String filename2 = args[1];
FileReader fr = new FileReader(filename1);
BufferedReader bfReader = new BufferedReader(fr);
FileWriter fw = new FileWriter(filename2);
BufferedWriter bfWriter= new BufferedWriter(fw);
while (bfReader.ready()){
String line =bfReader.readLine().replaceAll("[\\.\\,\\!\\?]","");
String tmp = line.replaceAll("(^|[\\s])([^0-9]+)([\\s]|$)"," ").trim();
//String tmp = line.replaceAll("([\\w0-9]+\\s)"," ");
bfWriter.write(tmp);
// System.out.println(line);
// System.out.println();
// System.out.println(tmp);
}
bfWriter.flush();
bfWriter.close();
bfReader.close();
}
}