Не понимаю(
package com.javarush.task.task22.task2209;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
BufferedReader readerFromFile = new BufferedReader(new FileReader(fileName));
String current="";
String sumString = "";
while ((current = readerFromFile.readLine()) != null){
current = " " + current;
sumString = sumString + current;
}
String [] wordsArr = sumString.trim().split(" ");
readerFromFile.close();
reader.close();
StringBuilder result = getLine(wordsArr);
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if(words.length == 0){
return new StringBuilder("");
}
StringBuilder sumStr = new StringBuilder(words[0]);
StringBuilder proxy;
for(int i=1; i<words.length; i++){
if(Character.toLowerCase(words[i].charAt(0)) == Character.toLowerCase(sumStr.charAt(sumStr.length()-1))
&& !words[i].equals("false")) {
proxy = new StringBuilder(words[i]);
sumStr.append(" "+proxy);
words[i] = "false";
i=1;
}else if(Character.toLowerCase(words[i].charAt(words[i].length()-1))== Character.toLowerCase(sumStr.charAt(0))
&& !words[i].equals("false")){
proxy = new StringBuilder(words[i] + " ");
proxy.append(sumStr);
sumStr = proxy;
words[i] = "false";
i=1;
}
}
for(int i=1; i<words.length; i++){
if(!words[i].equals("false")){
sumStr.append(" "+words[i]);
}
}
return sumStr;
}
}
/*
Составить цепочку слов
В методе main считай с консоли имя файла, который содержит слова, разделенные пробелом.
В методе getLine используя StringBuilder расставь все слова в таком порядке, чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
Каждое слово должно участвовать 1 раз.
Метод getLine должен возвращать любой вариант.
Слова разделять пробелом.
Вывести полученную строку на экран.
Пример тела входного файла:
Киев Нью-Йорк Амстердам Вена Мельбурн
Результат:
Амстердам Мельбурн Нью-Йорк Киев Вена
Требования:
1. Метод main должен считывать имя файла с клавиатуры.
2. В классе Solution не должно быть статических полей.
3. В методе getLine должен быть использован StringBuilder.
4. Метод getLine должен возвращать пустую строку(пустой StringBuilder) в случае если ему не были переданы параметры(слова).
5. Метод getLine не должен изменять переданные ему параметры(слова).
6. Все слова переданные в метод getLine должны быть включены в результирующую строку, если это возможно.
7. Вывод на экран должен соответствовать условию задачи.
*/