/
Skob.m.a
/
WorkSpace
Обзор
Документация
Войти
/
Skob.m.a
/
WorkSpace
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_13_6
67 строк
2 KB
Skob.m.a
create Task_13_6
01 дек 2024, 23:16
01 дек 2024, 23:16
0d856e3
Код
Авторство
О чём код?
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Scanner; public class WordChain { public static List<String> readWordsFromFile(String filename) throws IOException { List<String> words = new ArrayList<>(); try (BufferedReader br = new BufferedReader(new FileReader(filename))) { String line; while ((line = br.readLine()) != null) { String[] splitWords = line.split("\\s+"); for (String word : splitWords) { words.add(word.trim()); } } } return words; } public static String getLine(List<String> words) { StringBuilder result = new StringBuilder(); HashSet<String> usedWords = new HashSet<>(); if (!words.isEmpty()) { String currentWord = words.get(0); usedWords.add(currentWord); result.append(currentWord).append(" "); while (true) { boolean foundNext = false; for (String word : words) { if (!usedWords.contains(word) && currentWord.toLowerCase().charAt(currentWord.length() - 1) == word.toLowerCase().charAt(0)) { result.append(word).append(" "); usedWords.add(word); currentWord = word; foundNext = true; break; } } if (!foundNext) { break; } } } return result.toString().trim(); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Введите имя файла: "); String filename = scanner.nextLine(); try { List<String> words = readWordsFromFile(filename); String resultLine = getLine(words); System.out.println("Результат: " + resultLine); } catch (IOException e) { System.out.println("Ошибка при чтении файла: " + e.getMessage()); } } }