подскажите, люди добрыя... где косяк?
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.Arrays;
/*
Составить цепочку слов
В методе main считай с консоли имя файла, который содержит слова, разделенные пробелом.
В методе getLine используя StringBuilder расставь все слова в таком порядке, чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
Каждое слово должно участвовать 1 раз.
Метод getLine должен возвращать любой вариант.
Слова разделять пробелом.
Вывести полученную строку на экран.
Пример тела входного файла:
Киев Нью-Йорк Амстердам Вена Мельбурн
Результат:
Амстердам Мельбурн Нью-Йорк Киев Вена
Требования:
1. Метод main должен считывать имя файла с клавиатуры.
2. В классе Solution не должно быть статических полей.
3. В методе getLine должен быть использован StringBuilder.
4. Метод getLine должен возвращать пустую строку(пустой StringBuilder) в случае если ему не были переданы параметры(слова).
5. Метод getLine не должен изменять переданные ему параметры(слова).
6. Все слова переданные в метод getLine должны быть включены в результирующую строку, если это возможно.
7. Вывод на экран должен соответствовать условию задачи.
*/
public class Solution {
public static void main(String[] args) throws IOException {
//...
BufferedReader reader = new BufferedReader(new FileReader(new BufferedReader(new InputStreamReader(System.in)).readLine()));
StringBuilder input = new StringBuilder();
while (reader.ready()) {
input.append(reader.readLine()).append(" ");
}
reader.close();
StringBuilder result1 = getLine(input.toString().trim().split(" "));
StringBuilder result = getLine();
System.out.println(result1.toString());
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
StringBuilder sb = new StringBuilder();
if (words.length != 0 || words == null) {
String[] arr = Arrays.copyOf(words, words.length);
Arrays.sort(arr);
String current = arr[0];
arr[0] = null;
sb.append(current).append(" ");
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (arr[j] != null) {
char c = current.charAt(current.length() - 1);
char n = arr[j].toLowerCase().charAt(0);
if (c == n) {
sb.append(arr[j]).append(" ");
current = arr[j];
arr[j] = null;
}
}
}
} return sb.delete(sb.lastIndexOf(" "),sb.lastIndexOf(" ")+1 );
} else return sb;
}
}