Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 3. Небходимо создать консольное приложение, осуществляющее генерацию
- случайного текста в размере не менее чем 100 строк.
- Все "слова" текста составляются программой автоматически из случайно выбранных букв.
- После создания текста программа осуществляет поиск в тексте слов
- палиндромов (то есть таких слов, которые Одинаково читают слева —
- направо и справа-налево), заполняет этими словами массив и распечатывает
- на экране исходный текст и найденные палиндромы. Для простоты размер
- всех "слов" взять одинаковым. Размер слова" Задается пользователем путем
- ввода с клавиатуры.
- */
- package palindrom;
- import java.util.*;
- public class Palindrom {
- public static void main(String[] args) {
- // Класс сканер для возможности ввода из консоли
- Scanner scanner = new Scanner(System.in);
- int value = -1;
- // Ввод выполняется в цикле, пока не будет введено корректное значение
- while( value <= 0)
- {
- try
- {
- System.out.println("Введите длину слова, положительное целое число:");
- value = scanner.nextInt();
- // Не менее 100 слов
- Random random = new Random();
- //Вернет случайное целое число от 30 до 100 - Переменное количество сгенерированных слов
- int wordsCount = 30 + random.nextInt(101 - 30);
- String[] randomStrings = new String[wordsCount];
- ArrayList<String> palindromeArray = new ArrayList();
- for(int i = 0; i < wordsCount; i++){
- randomStrings[i] = new String(generateOneWord(value));
- //System.out.println(i + ": " + randomStrings[i]);
- if(isPalindrome(randomStrings[i])) palindromeArray.add(randomStrings[i]);
- }
- System.out.println("Исходный программно сгенерированный текст: " + Arrays.toString(randomStrings));
- System.out.println("-----------------------------------------------------------------------------");
- System.out.println("Массив найденных палиндромов: " + palindromeArray);
- if(!palindromeArray.isEmpty()){
- for (String s:palindromeArray)
- System.out.println(s + " - Найденный полиндром");
- } else
- System.out.println("Палиндромов в тексте не найдено");
- //String s = new String(Arrays.toString(randomStrings));
- //findPalindrom(s);
- }
- // Обработка искл. ситуации если введено неправильное значение - например символ или меньше либо равно 0
- catch (InputMismatchException ime)
- {
- System.err.println("Неверное значение.");
- // clear the keyboard buffer
- scanner.nextLine();
- }
- }
- }
- // метод нахождения палиндрома
- public static Boolean isPalindrome(String s) {
- return s.equals((new StringBuilder(s)).reverse().toString());
- }
- // Генератор слова из букв
- public static String generateOneWord(int numberOfChars) {
- String chars = "АБВГДЕЁЖЗИКЛМНОПРСТУФХЦЧШЩ";
- StringBuilder generated = new StringBuilder();
- Random rnd = new Random();
- while (generated.length() < numberOfChars) {
- int index = (int) (rnd.nextFloat() * chars.length());
- generated.append(chars.charAt(index));
- }
- String result = generated.toString();
- //System.out.println(result);
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement