ОК, так что у меня есть два файла .txt, один называется "input.txt", а другой - "output.txt". чтобы создать вывод, я должен скопировать текст из ввода, но заменить все пробелы между словами на @ и добавить новую строку со строкой "# NEW_LINE #" после каждой строки исходного текста
, например, если input.txt таков:
the unstoppable marching of time
that is slowly guiding us all towards
an inevitable death
, тогда output.txt должен выглядеть примерно так:
the@unstoppable@marching@of@time
#NEW_LINE#
that@is@slowly@guiding@us@all@towards
#NEW_LINE#
an@inevitable@death
#NEW_LINE#
В любом случае, вы поймете, что идея.
Теперь у меня нет проблем с этой конкретной задачей, но затем меня также просят напечатать на экране сообщение, которое показывает общее количество строк текста из обоих файлов, и еще одно, которое печатает общее количество из @ из output.txt. и хотя у меня нет проблем с подсчетом строк, их номера отображаются правильно, но у меня есть проблемы с выяснением @'s ... ill объяснения.
вот часть кода, который я попробовал сначала: [ Кстати, все это происходит в одном классе, без других методов, кроме main, конечно. я думал, что так будет проще idk ?♂️?]
File fsrc=new File("input.txt");
File fdes=new File("output.txt");
int atCount = 0; //number of @'s
int lineCountIN=0; //number of input's lines
int lineCountOUT=0; //number of output's lines
FileReader fr = new FileReader(fsrc);
BufferedReader br =new BufferedReader(fr);
FileWriter fw = new FileWriter(fdes);
String s = null;
while((s=br.readLine())!=null)
{
if ((s.equals(" "))) {
fw.write(s.replace(" ","@"));
atCount++; }
else fw.write(s);
fw.write("\n");
lineCountOUT++;
lineCountIN++;
fw.write("#NEW_LINE#");
fw.write("\n");
lineCountOUT++;
fw.flush();
}
fw.close();
[...]
System.out.println("Total instances of @ characters at output.txt: " + atCount);
сообщение, которое появляется на экране, всегда будет: " Всего экземпляров @ символов в output.txt: 0 ".
позже я заменил блок if-else на блок do-while:
do {
fw.write(s.replace(" ","@"));
atCount++; }
while ((s.equals(" ")));
, но затем сообщение не возвращается точное число @, на самом деле отображаемое число просто по какой-то причине оказывается равным lineCountIN (например, для файла input.txt с 3 строками итоговое сообщение: «Всего экземпляров @ символы в output.txt: 3 ")
, так что да, это довольно много, я думаю, что я неправильно использую atCount ?? любая помощь может быть оценена <3 </p>