Добрый день товарищи.
List<String> list = new ArrayList<>(Arrays.asList(words));
stringBuilder.append(list.get(0));
String first = list.get(0).substring(0,1);
Собственно вопрос. Список выводит правильно. А вот в String first = list.get(0).substring(0,1) по идее должна быть буква "К"... Ан нет...где ошибка не пойму. Да и длинна "Киев" c какой то стати равна 5.
Файл содержит:
Киев Нью-Йорк Амстердам Вена Мельбурн
package com.javarush.task.task22.task2209;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
/*
Составить цепочку слов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
String n = scanner.nextLine();
BufferedReader file = new BufferedReader(new FileReader(n));
StringBuilder word = new StringBuilder();
while (file.ready()) {
word.append(file.readLine());
}
System.out.println(word.toString());
StringBuilder result = getLine(word.toString().split(" "));
System.out.println(result.toString());
}
public static StringBuilder getLine(String... words) {
StringBuilder stringBuilder = new StringBuilder();
if (words == null || words.length == 0) {
return stringBuilder;
}
List<String> list = new ArrayList<>(Arrays.asList(words));
stringBuilder.append(list.get(0));
String first = list.get(0).substring(0,1);
list.remove(0);
while (!list.isEmpty()){
for (int index = 0; index < list.size(); index++) {
if (first.equalsIgnoreCase(new StringBuilder(list.get(index)).reverse().substring(0, 1))) {
stringBuilder.append(" ");
stringBuilder.append(list.get(index));
first = new StringBuilder(list.get(index)).reverse().substring(0, 1);
list.remove(index);
break;
}
}
}
return stringBuilder;
}
}