Вопросы выдаёт, где косяк?
в idia всё идеально работает.
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.ArrayList;
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
//...
StringBuilder result = getLine(getDataFile());
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
if(words.length == 0) {return new StringBuilder();}
ArrayList<String> array = new ArrayList<>(Arrays.asList(words));
StringBuilder builder = new StringBuilder();
int countElemBuilder = 1;
int wordsSize = array.size();
builder.append(array.get(0));
array.remove(0);
boolean flag = true;
while (flag) {
for (int i = 0; i < array.size(); i++) {
for (int j = 0; j < array.size(); ) {
String first = String.valueOf(builder.charAt(builder.length()-1));
String second = String.valueOf(array.get(j).toCharArray()[0]);
if(first.equalsIgnoreCase(second)) {
builder.append(" ").append(array.get(j));
array.remove(j);
countElemBuilder++;
j = 0;
}
else j++;
}
}
if(countElemBuilder != wordsSize) {
String firstChange = array.get((int) (Math.random() * array.size()));
array = new ArrayList<>(Arrays.asList(words));
String secondChange = array.get(0);
array.set(array.indexOf(firstChange), secondChange);
array.set(0, firstChange);
builder = new StringBuilder("");
builder.append(array.get(0));
array.remove(0);
countElemBuilder = 1;
}
else flag = false;
}
return builder;
}
private static String[] getDataFile() {
ArrayList<String> data = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// BufferedReader readerData = new BufferedReader(new FileReader("/home/someboy/Документы/test2.txt"))){
BufferedReader readerData = new BufferedReader(new FileReader(reader.readLine()))){
while (readerData.ready()) {
String str;
if((str = readerData.readLine()) != null && str.length() != 0) {
for(String elem: str.split("[\n ]")){
data.add(elem.trim());
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
return data.toArray(new String[0]);
}
private static String getFileName(){
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
// return reader.readLine();
return "/home/someboy/Документы/test1.txt";
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}