Нужен список слов, при котором вывод не будет соответствовать условию задачи. Желательно объяснить в чем проблема)
![]()
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
//source.txt
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader reader = new BufferedReader(new FileReader(bufferedReader.readLine()));
List<String> words = new ArrayList<>();
while (reader.ready()){
words.addAll(Arrays.asList(reader.readLine().split(" ")));
}
String[] wordsArray = new String[words.size()];
for (int i = 0; i < words.size(); i++) {
wordsArray[i] = words.get(i);
}
StringBuilder result = getLine(wordsArray);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
StringBuilder line = new StringBuilder();
if (Arrays.equals(words, new String[0])) return line;
List<String> wordsList = new ArrayList<>(Arrays.asList(words));
for (int i = 0; i < words.length; i++){
if (line.toString().length() != 0){
line.append(" ");
}
else {
line.append(wordsList.get(0) + " ");
wordsList.remove(0);
}
for (int j = 0; j < wordsList.size(); j++) {
String[] dinArray = line.toString().split(" ");
//System.out.println(wordsList.toString());
if (dinArray[i].equals(wordsList.get(j))){
wordsList.remove(i);
}
if (dinArray[i].toLowerCase().charAt(dinArray[i].length() - 1) == wordsList.get(j).toLowerCase().charAt(0)){
line.append(wordsList.get(j));
wordsList.remove(j);
break;
}
}
}
return line;
}
}