Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.90 KB | None | 0 0
  1. package com.javarush.test.level22.lesson09.task03;
  2.  
  3. import java.io.*;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6.  
  7. /* Составить цепочку слов
  8. В методе main считайте с консоли имя файла, который содержит слова, разделенные пробелом.
  9. В методе getLine используя StringBuilder расставить все слова в таком порядке,
  10. чтобы последняя буква данного слова совпадала с первой буквой следующего не учитывая регистр.
  11. Каждое слово должно участвовать 1 раз.
  12. Метод getLine должен возвращать любой вариант.
  13. Слова разделять пробелом.
  14. В файле не обязательно будет много слов.
  15.  
  16. Пример тела входного файла:
  17. Киев Нью-Йорк Амстердам Вена Мельбурн
  18.  
  19. Результат:
  20. Амстердам Мельбурн Нью-Йорк Киев Вена
  21. */
  22. public class Solution
  23. {
  24.     public static void main(String[] args) throws IOException
  25.     {
  26.         //...
  27.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  28.         String file = reader.readLine();
  29.  
  30.         BufferedReader reader2 = new BufferedReader(new FileReader(file));
  31.         String line;
  32.         String words[] = new String[0];
  33.         ArrayList<String> wordsList = new ArrayList<>();
  34.         while ((line = reader2.readLine()) != null)
  35.         {
  36.             words = line.split(" ");
  37.  
  38.             Collections.addAll(wordsList, words);
  39.         }
  40.  
  41.  
  42.         StringBuilder result = getLine(words);
  43.  
  44.         System.out.println(result.toString());
  45.     }
  46.  
  47.     public static StringBuilder getLine(String... words)
  48.     {
  49.         ArrayList<String> wordsList = new ArrayList<>();
  50.         Collections.addAll(wordsList, words);
  51.         StringBuilder sb = new StringBuilder();
  52.         while (true)
  53.         {
  54.             Collections.shuffle(wordsList);
  55.             boolean isThat = false;
  56.             for (int i = 0; i < wordsList.size() - 1; i++)
  57.             {
  58.                 String first = wordsList.get(i);
  59.                 String second = wordsList.get(i + 1);
  60.                 char symb1[] = first.toLowerCase().toCharArray();
  61.                 char symb2[] = second.toLowerCase().toCharArray();
  62.                 if (symb1[symb1.length - 1] == symb2[0])
  63.                 {
  64.                     isThat = true;
  65.                 }
  66.             }
  67.             if (isThat)
  68.             {
  69.  
  70.                 for (int i = 0; i < wordsList.size(); i++)
  71.                 {
  72.                     sb.append(wordsList.get(i));
  73.                     sb.append(" ");
  74.                 }
  75.                 break;
  76.  
  77.             }
  78.         }
  79.         return sb;
  80.  
  81.     }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement