Advertisement
VastMind

Untitled

May 23rd, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.70 KB | None | 0 0
  1. /*
  2. 3. Небходимо создать консольное приложение, осуществляющее генерацию
  3. случайного текста в размере не менее чем 100 строк.
  4. Все "слова" текста составляются программой автоматически из случайно выбранных букв.
  5. После создания текста программа осуществляет поиск в тексте слов
  6. палиндромов (то есть таких слов, которые Одинаково читают слева —
  7. направо и справа-налево), заполняет этими словами массив и распечатывает
  8. на экране исходный текст и найденные палиндромы. Для простоты размер
  9. всех "слов" взять одинаковым. Размер слова" Задается пользователем путем
  10. ввода с клавиатуры.
  11. */
  12. package palindrom;
  13.  
  14. import java.util.*;
  15.  
  16. public class Palindrom {
  17.  
  18.         public static void main(String[] args) {
  19.             // Класс сканер для возможности ввода из консоли
  20.             Scanner scanner = new Scanner(System.in);
  21.  
  22.             int value = -1;
  23.             // Ввод выполняется в цикле, пока не будет введено корректное значение
  24.             while( value <= 0)
  25.             {
  26.                 try
  27.                 {
  28.                     System.out.println("Введите длину слова, положительное целое число:");
  29.                     value = scanner.nextInt();
  30.  
  31.                     // Не менее 100 слов
  32.                     Random random = new Random();
  33.  
  34.                     //Вернет случайное целое число от 30 до 100 - Переменное количество сгенерированных слов
  35.                     int wordsCount = 30 + random.nextInt(101 - 30);
  36.  
  37.                     String[] randomStrings = new String[wordsCount];
  38.  
  39.                     ArrayList<String> palindromeArray  = new ArrayList();
  40.                     for(int i = 0; i < wordsCount; i++){
  41.                         randomStrings[i] = new String(generateOneWord(value));
  42.                         //System.out.println(i + ": " + randomStrings[i]);
  43.  
  44.                         if(isPalindrome(randomStrings[i])) palindromeArray.add(randomStrings[i]);
  45.  
  46.                     }
  47.                     System.out.println("Исходный программно сгенерированный текст: " + Arrays.toString(randomStrings));
  48.                     System.out.println("-----------------------------------------------------------------------------");
  49.                     System.out.println("Массив найденных палиндромов: " + palindromeArray);
  50.                     if(!palindromeArray.isEmpty()){
  51.  
  52.                         for (String s:palindromeArray)
  53.                             System.out.println(s + " - Найденный полиндром");
  54.  
  55.                     } else
  56.                         System.out.println("Палиндромов в тексте не найдено");
  57.                     //String s = new String(Arrays.toString(randomStrings));
  58.  
  59.                     //findPalindrom(s);
  60.                 }
  61.                 // Обработка искл. ситуации если введено неправильное значение - например символ или меньше либо равно 0
  62.                 catch (InputMismatchException ime)
  63.                 {
  64.                     System.err.println("Неверное значение.");
  65.                     // clear the keyboard buffer
  66.                     scanner.nextLine();
  67.                 }
  68.  
  69.  
  70.                 }
  71.             }
  72.     // метод нахождения палиндрома
  73.     public static Boolean isPalindrome(String s) {
  74.         return s.equals((new StringBuilder(s)).reverse().toString());
  75.     }
  76.  
  77.     // Генератор слова из букв
  78.     public static String generateOneWord(int numberOfChars) {
  79.         String chars = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩ";
  80.         StringBuilder generated = new StringBuilder();
  81.         Random rnd = new Random();
  82.         while (generated.length() < numberOfChars) {
  83.  
  84.             int index = (int) (rnd.nextFloat() * chars.length());
  85.  
  86.             generated.append(chars.charAt(index));
  87.         }
  88.         String result = generated.toString();
  89.         //System.out.println(result);
  90.         return result;
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement