На моём тестовом файле программа работает прекрасно. В данном виде она удаляет символы новой строки и перевода каретки. Если в 26-й строке оставить разбивку только лишь по пробелам, то дальнейший код будет сохранять эти символы, вставляя запятую между ними и словом. Но ни так, ни эдак не проходит валидацию. Поэтому у меня возникают вопросы, на которые я не могу найти ответов:
- Нужно ли между короткими словами оставлять пробелы или согласно образца (там пробелов нет после запятых) короткие слова должны склеиваться?
- Нужно ли сохранять символы новой строки и перевода каретки или должна получится одна строка из исходного текста?
package com.javarush.task.task19.task1925;
import java.io.*;
import java.util.ArrayList;
/*
Длинные слова
*/
public class Solution {
public static void main(String[] args) throws Exception {
String path1 = "f:\\txt.txt";
String path2 = "f:\\ttt.txt";
path1 = args [0];
path2 = args [1];
FileReader fr1 = new FileReader (path1);
File f1 = new File(path1);
char [] ch1 = new char [(int) f1.length()];
fr1.read (ch1);
fr1.close ();
String orig = new String (ch1);
orig = orig.trim ();
String [] ar1 = orig.split (" |\\r\\n");
/*for (String a : ar1) {
System.out.println ("----" + a);
}*/
String [] temp;
String out = "";
for (int i = 0; i < ar1.length; i++) {
if (i < (ar1.length - 1)) {
if (ar1 [i].toCharArray().length > 6) {
temp = ar1 [i].split ("\\r\\n");
if (temp != null) {
if (temp.length > 1) {
//System.out.println ("aaa");
if (temp [0].toCharArray().length > 6) {
out += temp [0] + ", " + '\r' + '\n';
} else {
out += temp [0] + " ";
}
if (temp [1].toCharArray().length > 6) {
out += temp [1] + ", ";
} else {
out += temp [1] + " ";
}
} else {
out += ar1[i] + ", ";
}
}
} else {
out += ar1 [i] + " ";
}
} else {
temp = ar1 [i].split ("\\r\\n");
if (temp != null) {
if (temp.length > 1) {
//System.out.println ("aaa");
if (temp [0].toCharArray().length > 6) {
out += temp [0] + ", " + '\r' + '\n';
} else {
out += temp [0] + " " + '\r' + '\n';
}
if (temp [1].toCharArray().length > 6) {
out += temp [1];
} else {
out += temp [1];
}
} else {
out += ar1[i];
}
}
//out += ar1 [i];
}
}
FileWriter fw = new FileWriter (path2);
fw.write (out.toCharArray());
fw.close ();
}
}