Здравствуйте. Возникла загвоздка с двумя последними пунктами.Не ясно, почему валик считает, что не все слова включаются в результирующую строку. Ну, также не ясно и про последний пункт. Подскажите, пожалуйста, что не так. Заранее спасибо.
public class Solution {
public static void main(String[] args) throws IOException {
//...
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
//String fileName = "F:\\JAVA\\Files\\IOEx\\file.txt";
BufferedReader file = new BufferedReader(new FileReader(fileName));
String s;
ArrayList<String> list = new ArrayList<>();
while ((s = file.readLine()) != null) {
String[] mas = s.split(" ");
Collections.addAll(list, mas);
}
String[] arr = list.toArray(new String[0]);
StringBuilder result = getLine(arr);
System.out.println(result.toString());
file.close();
reader.close();
}
public static StringBuilder getLine(String... words) {
StringBuilder result = new StringBuilder();
if (words.length == 0)
return result;
ArrayList<String> list = new ArrayList<>(Arrays.asList(words));
result.append(list.get(0));
list.remove(0);
for (int k = list.size(); k > 0 ; k--) {
String s1 = result.toString().toUpperCase();
for (int i = 0; i < list.size(); i++) {
if (s1.charAt(s1.length() - 1) == list.get(i).toUpperCase().charAt(0)) {
result.append(" " + list.get(i));
list.remove(i);
break;
}
}
}
return result;
}
}
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;
import java.util.Collections;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//...
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
//String fileName = "F:\\JAVA\\Files\\IOEx\\file.txt";
BufferedReader file = new BufferedReader(new FileReader(fileName));
String s;
ArrayList<String> list = new ArrayList<>();
while ((s = file.readLine()) != null) {
String[] mas = s.split(" ");
Collections.addAll(list, mas);
}
String[] arr = list.toArray(new String[0]);
StringBuilder result = getLine(arr);
System.out.println(result.toString());
file.close();
reader.close();
}
public static StringBuilder getLine(String... words) {
StringBuilder result = new StringBuilder();
if (words.length == 0)
return result;
ArrayList<String> list = new ArrayList<>(Arrays.asList(words));
result.append(list.get(0));
list.remove(0);
for (int k = list.size(); k > 0 ; k--) {
String s1 = result.toString().toUpperCase();
for (int i = 0; i < list.size(); i++) {
if (s1.charAt(s1.length() - 1) == list.get(i).toUpperCase().charAt(0)) {
result.append(" " + list.get(i));
list.remove(i);
break;
}
}
}
return result;
}
}