![](https://cdn.javarush.com/images/system/d1941d3e-257d-4182-a5a4-1cdafd1bc4ad/1024.jpeg)
package com.javarush.task.task22.task2209;
import java.util.*;
import java.io.*;
/*
В методе main считай с консоли имя файла, который содержит слова, разделенные пробелом.
В методе getLine используя StringBuilder расставь все слова в таком порядке, чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
Каждое слово должно участвовать 1 раз.C:\Users\Oleh_Kosylo\Desktop\Новый текстовый документ (4).txt
Метод getLine должен возвращать любой вариант.
Слова разделять пробелом.
Вывести полученную строку на экран.
C:\Users\Oleh_Kosylo\Desktop\Новый текстовый документ (4).txt
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String FileName = reader.readLine();
FileReader file = new FileReader(FileName);
String TextOrFile = "";
int c;
while((c=file.read())!=-1){
TextOrFile = TextOrFile + (char) c;
}
StringBuilder result = getLine(TextOrFile.split(" "));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if(words.length == 0) return new StringBuilder();
String[] array = words;
ArrayList<String> list = new ArrayList<>();
for(int i=0;i<array.length;i++){
list.add(array[i]);
Collections.sort(list);
}
ArrayList<String> list2 = new ArrayList<>();
list2.add(list.get(0));
list.remove(0);
for(int j=0;j<list.size();j++) {
for (int i = 0; i < list.size(); i++) {
char Start2Char = list.get(i).toLowerCase().charAt(0); // 1
int index = list2.size() - 1;
int length = list2.get(index).length() - 1;
char StartChar = list2.get(index).toLowerCase().charAt(length); // last
if (StartChar == Start2Char) {
list2.add(list.get(i));
index = list2.size() - 1;
} } }
LinkedHashSet<String> set = new LinkedHashSet<>();
for(String s:list2){
set.add(s); }
String finalString ="";
for(String s:set){
finalString = finalString.trim()+" "+s; }
StringBuilder stringBuilder = new StringBuilder(finalString);
return stringBuilder; }}