Понял условие так:
1. если две строки (каждая из разного файла) равны, то добавляем SAME и строку из любого файла
2. если первая строка не равна второй (из первого и второго файла соответственно), то добавляем REMOVED и первую строку (из первого файла)
3. если вторая строка не равна первой, то добавляем ADDED и вторую строку
и тут понимаю, что 2 и 3 условие в принципе одинаково, попытался это написать, думая "может быть получится", но не получилось... попробовал добавить метод, который сравнивал бы две строки, но понимаю что и там в принципе два условия одинаковые, но я хотел его сделать так: если сравниваем первую строку со второй и если они не равны, то вывести первую строку, и наоборот
Подскажите, пожалуйста, в правильном ли направлении движусь?
***попытался поискать ответ на свой вопрос в "Помощи", но там подсказки не помогают, так как они касаются нюансов, потому что почти все написали верный код, а я уже написанный код не хочу смотреть и в Обсуждения не захожу, так как там готовое решение уже есть(((
package com.javarush.task.task19.task1916;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
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) {
try(BufferedReader nameReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader firstReader = new BufferedReader(new FileReader(nameReader.readLine()));
BufferedReader secondReader = new BufferedReader(new FileReader(nameReader.readLine()))) {
List<String> firstLines = new ArrayList<>();
String s1;
while ((s1 = firstReader.readLine()) != null) {
firstLines.add(s1);
}
List<String> secondLines = new ArrayList<>();
String s2;
while ((s2 = secondReader.readLine()) != null) {
secondLines.add(s2);
for(String s : firstLines){
if (s.equals(s2)) {
lines.add(new LineItem(Type.SAME, s2));
}
/*
else {
String line = compareStrings(s, s2);
lines.add(new LineItem(Type.REMOVED, line));
String line2 = compareStrings(s2, s);
lines.add(new LineItem(Type.ADDED, line2));
}*/
else if(!s2.equals(s)){
lines.add(new LineItem(Type.ADDED, s2));
}
else if(!s.equals(s2)){
lines.add(new LineItem(Type.REMOVED, s));
}
}
}
}
catch (IOException e){
}
}
public static String compareStrings(String s1, String s2){
if(!s1.equals(s2)){
return s1;
}
else
return s2;
}
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;
}
}
}