тестил, все норм
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
try (BufferedReader nameReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(nameReader.readLine()))) {
while (fileReader.ready()) {
String[] strArr = fileReader.readLine().split(" ");
for (String str : strArr) {
list.add(str);
}
}
}
System.out.println(getLine(getArray(list)).toString().trim());
}
public static String[] getArray(List<String> list) {
String[] arr = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
arr[i] = list.get(i);
}
return arr;
}
public static char[] getLetters(String str) {
String lowCaseStr = str.toLowerCase();
char[] arr = lowCaseStr.toCharArray();
return arr;
}
public static char getFirstLetter(char[] arr) {
return arr[0];
}
public static char getLastLetter(char[] arr) {
return arr[arr.length];
}
public static StringBuilder getLine(String... words) {
ArrayList<String> poolList = new ArrayList<>();
for (String str2 : words) {
poolList.add(str2);
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < poolList.size(); i++) {
if (i >= poolList.size()) {
break;
}
for (int j = 0; j < poolList.size();) {
if (getLastLetter(getLetters(poolList.get(j))) == getFirstLetter(getLetters(poolList.get(i))) && i != j) {
sb.append(poolList.get(j) + " " + poolList.get(i) + " ");
poolList.remove(j);
poolList.remove(i);
j = 0;
} else {
j++;
}
}
}
if (poolList.size() == 1) {
sb.append(poolList.get(0));
}
if (sb.toString().equals("")) {
return sb;
} else {
return sb;
}
}
}