Я вообще в правильном направлении? Где загвоздка в цикле ? У меня уже троится от этих ленгтов и сайзов
На считывание не обращайте внимания, туда потом полезу.
package com.javarush.task.task22.task2209;
/*
Составить цепочку слов
*/
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class Solution {
public static void main(String[] args) throws IOException {
String sss = "Афины Киев Нью-Йорк Амстердам Вена Мельбурн Алушта Ялта";
StringBuilder result = getLine(sss);
System.out.println("sbb = " + result);
}
public static StringBuilder getLine(String... words) {
// if (words == null || words.length == 0)
// return new StringBuilder("");
String[] arr = Arrays.toString(words).replaceAll("[\\[\\]]", "").split(" ");
ArrayList<String> list = new ArrayList<>(Arrays.asList(arr));
ArrayList<String> listtest = new ArrayList<>();
StringBuilder sbb = new StringBuilder();
final int sizelist = list.size();
for (int i = 0; i < list.size() && listtest.size() != sizelist; i++) {
if (listtest.size() == sizelist-1) {
System.out.println(listtest);
} else {
if ((list.get(i).toUpperCase().charAt(list.get(i).length() - 1)
== list.get(i + 1).toUpperCase().charAt(0))
&& (list.get(0).toUpperCase().charAt(list.get(0).length() - 1)
== list.get(1).toUpperCase().charAt(0))
&& (list.get(list.size() - 2).toUpperCase().charAt(list.get(list.size() - 2).length() - 1)
== (list.get(list.size() - 1)).toUpperCase().charAt(0))) {
listtest.add(list.get(i));
list.remove(list.get(i));
System.out.println(listtest);
i = 0;
} else if (list.get(i).toUpperCase().charAt(list.get(i).length() - 1)
!= list.get(i + 1).toUpperCase().charAt(list.get(i + 1).length() - 1)) {
list.addAll(0, listtest);
Collections.shuffle(list);
listtest.clear();
i = 0;
}
}
}
System.out.println(list);
System.out.println(listtest);
return null;
}
}