Помогите, пожалуйста, найти ошибку. На введенных данных работает корректно, но валидатор не принимает.
Пишет: Убедись, что список lines в нужных местах содержит операции REMOVED c нужными строками.
package com.javarush.task.task19.task1916;
import java.io.*;
import java.util.*;
/*
Отслеживаем изменения
*/
public class Solution {
public static List<LineItem> lines = new ArrayList<LineItem>();
public static void main(String[] args) throws IOException {
//Input names---------------------------------------
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name1 = "";
String name2 = "";
try{
name1 = br.readLine();
name2 = br.readLine();
br.close();
} catch(Exception ex){}
//Read file1--------------------------------------------
List<String> list1 = new LinkedList<String>();
BufferedReader br1 = new BufferedReader(new FileReader(name1));
while (br1.ready()) {
try{
String s = br1.readLine();
s.replaceAll("[^a-zA-Z0-9\\p{InCyrillic}\\s]", " ");
s.replaceAll("( )+", " ");
s.trim();
list1.add(s);
} catch (Exception e1) {}
}
br1.close();
//Check result------------------------------------------
for (String s: list1) System.out.print(s + " "); System.out.println();
//Read file2--------------------------------------------
List<String> list2 = new LinkedList<String>();
BufferedReader br2 = new BufferedReader(new FileReader(name2));
while (br2.ready()) {
try{
String s = br2.readLine();
s.replaceAll("[^a-zA-Z0-9\\p{InCyrillic}\\s]", " ");
s.replaceAll("( )+", " ");
s.trim();
list2.add(s);
} catch (Exception e2) {}
}
br2.close();
//Check result----------------------------------------------
for (String s: list2) System.out.print(s + " "); System.out.println();
//One common set for both--------------------------------------------
List<String> list3 = new LinkedList<String>();
list3.addAll(list1);
list3.addAll(list2);
Set<String> set = new HashSet<String>(list3);
//Check set---------------------------------------------------
for (String s: set) System.out.print(s + " "); System.out.println();
//Create Line Item----------------------------------------------
list3 = new LinkedList<String>(set);
for (int i = 0; i < list3.size(); i++){
if (list1.contains(list3.get(i)) && list2.contains(list3.get(i))) lines.add(new LineItem(Type.SAME, list3.get(i))); else
if (list1.contains(list3.get(i)) && !list2.contains(list3.get(i))) lines.add(new LineItem(Type.REMOVED, list3.get(i))); else
if (!list1.contains(list3.get(i)) && list2.contains(list3.get(i))) lines.add(new LineItem(Type.ADDED, list3.get(i)));
}
//Check LineItem--------------------------------------------------
for (LineItem l : lines) System.out.println(l.type + "---"+ l.line);
}
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;
}
}
}