import java.io.*; import java.util.*; public class Semordnilaps { public static void main(String[] args) throws IOException { List lst = readLines("unixdict.txt"); Set seen = new HashSet<>(); int count = 0; for (String w : lst) { String r = new StringBuilder(w).reverse().toString(); if (seen.contains(r)) { if (count++ < 5) System.out.printf("%-10s %-10s\n", w, r); } else seen.add(w); } System.out.println("\nSemordnilap pairs found: " + count); } private static List readLines(String fn) throws IOException { List lines; try (BufferedReader br = new BufferedReader(new FileReader(fn))) { lines = new ArrayList<>(); String line; while ((line = br.readLine()) != null) lines.add(line.trim().toLowerCase()); } return lines; } }