Скрин дебага прилагается, если обратить внимание, то буковки a и b вроде как совпадают, но коды у них разные, почему то, кто разбирается в чем дело?
idea просто считает их разными и не заходит внутрь цикла ifpackage com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//...
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String file = reader.readLine();
BufferedReader words = new BufferedReader(new FileReader(file));
List <String> list = new ArrayList<>();
while (words.ready()){
list.addAll(Arrays.asList(words.readLine().split(" ")));
}
StringBuilder result = getLine(list.toArray(new String[0]));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
AbstractList <String> lists = new ArrayList<>();
for (String s:words){
lists.add(s);
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(lists.get(0) + " ");
lists.remove(0);
int k = lists.size();
for (int j = 0; j < k; j++){
for (int i = 0; i < lists.size(); i++){
String t = lists.get(i);
Character a = Character.toLowerCase(lists.get(i).charAt(0));
Character b = Character.toLowerCase(stringBuilder.charAt(stringBuilder.length() - 2));
if (a == b){
stringBuilder.append(lists.get(i) + " ");
lists.remove(i);
}
}
}
stringBuilder.deleteCharAt(stringBuilder.length() - 1);
return stringBuilder;
}
}