Здравствуйте!
Не могу понять почему не проходят последние два пункта. Пробовал разные варианты , все города выводит, пробелов лишних нет.
Благодарю за помощь.
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.*;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//...
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = bufferedReader.readLine();
BufferedReader br = new BufferedReader(new FileReader(fileName));
StringBuilder stringBuilder = new StringBuilder();
while (br.ready()) {
stringBuilder.append(br.readLine() + " ");
}
String[] strFromFile = stringBuilder.toString().trim().split(" ");
StringBuilder result = getLine(strFromFile);
System.out.println(result.toString());
}
public static boolean eqSimb(String firstString, String secondString) {
String endSimb = firstString.substring(firstString.length() - 1, firstString.length()).toUpperCase();
String oneSimbSecond = secondString.substring(0, 1);
if (endSimb.equals(oneSimbSecond)) {
return true;
} else return false;
}
public static StringBuilder getLine(String... words) {
List<String> stringList = new ArrayList<>();
List<String> tempList = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder("");
if (words.length == 0) {
return stringBuilder;
}
for (int i = 0; i < words.length; i++) {
stringList.add(words[i]);
}
int count = 0;
for (int i = 0; i < words.length; i++) {
String firstStr = words[i];
stringBuilder.append(firstStr + " ");
tempList.add(firstStr);
count = 1;
gto:
for (int j = 0; j < stringList.size(); ) {
String s = stringList.get(j);
j++;
if (!s.equals(firstStr) && eqSimb(firstStr, s) && !tempList.contains(s)) {
count++;
stringBuilder.append(s + " ");
firstStr = s;
tempList.add(s);
j = 0;
continue gto;
}
}
// if (stringList.size() == tempList.size()){
if (count == words.length) {
return stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), "");
} else {
stringBuilder.setLength(0);
count = 0;
tempList.clear();
}
}
return stringBuilder.replace(stringBuilder.length() - 1, stringBuilder.length(), "");
}
}