При тестировании было все окей.
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//...
String file = "D:\\Programm\\Files\\file.txt";
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(reader.readLine()));
String s = "";
while (fileReader.ready()){
s += fileReader.readLine()+" ";
}
s = s.replaceAll("[\uFEFF-\uFFFF]", "");
StringBuilder result = getLine(s.split(" "));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if(words.length == 0) return new StringBuilder();
String[] strings = words;
for (int i = 0; i < strings.length; i++) {
strings[i] = strings[i].toLowerCase();
}
List<String> list = new ArrayList<>();
list.add(strings[0]);
for (int i = 0; i < strings.length; i++) {
char first = strings[i].charAt(0);
char last = list.get(list.size()-1).charAt(list.get(list.size()-1).length()-1);
if(first == last){
list.add(strings[i]);
i = 0;
}
}
List<String> newlist = new ArrayList<>();
StringBuilder result = new StringBuilder();
int i = 0;
for (String s : list) {
//System.out.println(s);
i++;
String normal = s.substring(0,1).toUpperCase()+s.substring(1);
result.append(normal);
if(i!=list.size()) result.append(" ");
}
return result;
}
}