У меня у одного вопрос к условию??
Как я представляю содержимое файлов и результат работы
file1: file2: result
line1 line1 same
line2 added
line3 line3 same
line4 line4 same
line5 removed
line6 line6 same
line7 added
line8 line8 same
line9 line9 same
line10 line10 same
А в условии написано, что в файлах пробелов нет..
"Пустые строки даны в примере для наглядности.
В оригинальном и редактируемом файлах пустых строк нет!"
file1: file2: result
line1 line1 same
line3 line2 ??????
line4 line3 ??????
line5 line4 ??????
line6 line6 same
line8 line7 ?????
line9 line8 ????
line10 line9 ????
line10 added
Там где знаки вопроса я должен выводить что?
package com.javarush.task.task19.task1916;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Отслеживаем изменения
*/
public class Solution
{
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws IOException {
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)))
{
String fileName1 = bufferedReader.readLine();
String filename2 = bufferedReader.readLine();
ArrayList<String> listForFile1 = new ArrayList<>();
ArrayList<String> listForFile2 = new ArrayList<>();
// Читаем 1й фаил
FileReader fileReader = new FileReader(fileName1);
BufferedReader bufferedReader1 = new BufferedReader(fileReader);
String string = "";
while ((string = bufferedReader1.readLine()) != null)
{
listForFile1.add(string);
}
string = "";
fileReader.close();
bufferedReader1.close();
// Читаем второй фаил
FileReader fileReader1 = new FileReader(filename2);
BufferedReader bufferedReader2 = new BufferedReader(fileReader1);
while ((string = bufferedReader2.readLine()) != null)
{
listForFile2.add(string);
}
bufferedReader2.close();
fileReader1.close();
int leng = listForFile1.size();
String s1;
String s2;
LineItem lineItem;
for (int i = 0; i < leng; i ++)
{
s1 = listForFile1.get(i);
s2 = listForFile2.get(i);
// Условия для SAME
if (s1.equals(s2))
{
lineItem = new LineItem(Type.SAME,s1);
lines.add(lineItem);
}
// Условия для REMOVED
else if(!s1.equals(s2) & s2.isEmpty() & !s1.isEmpty())
{
lineItem = new LineItem(Type.REMOVED,s1);
lines.add(lineItem);
}
// Условия для ADDED
else if (!s1.equals(s2) & !s2.isEmpty() & s1.isEmpty())
{
lineItem = new LineItem(Type.ADDED,s2);
lines.add(lineItem);
}
s1 = null;
s2 = null;
}
for (LineItem s : lines)
{
System.out.println(s.type.toString() + " " + s.line);
}
}
catch (Exception exc)
{
exc.printStackTrace();
}
}
public static enum Type
{
ADDED, //добавлена новая строка
REMOVED, //удалена строка
SAME //без изменений
}
public static class LineItem
{
public Type type;
public String line;
public LineItem(Type type, String line)
{
this.type = type;
this.line = line;
}
}
}