?
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.StringTokenizer;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) {
List<String> words = new ArrayList<>();
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new InputStreamReader(new FileInputStream(bufferedReader.readLine())))) {
while (fileReader.ready()) {
words.add(fileReader.readLine());
}
} catch (IOException e){
}
String[] aWords = new String[words.size()];
for (int i = 0; i < aWords.length; i++) {
aWords[i] = words.get(i);
}
StringBuilder result = getLine( aWords);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if (words.length == 0)
return new StringBuilder();
List<String> copyWords = new ArrayList<>();
List<String> lines = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder(words[0]);
for (int i = 1; i < words.length; i++) {
copyWords.add(words[i]);
lines.add(words[i].toLowerCase(Locale.ROOT));
}
for (int i = 0; i < lines.size();) {
if (stringBuilder.charAt(stringBuilder.length() - 1) == lines.get(i).charAt(0)) {
stringBuilder.append(" " + copyWords.get(i));
lines.remove(i);
copyWords.remove(i);
i = 0;
} else {
i++;
}
}
return stringBuilder;
}
}