Есть ли возможность генерировать случайный символ в Java?
Есть ли у Java какие-либо функции для генерации случайных символов или строк? Или нужно просто выбрать случайное целое число и преобразовать этот целочисленный код ascii в символ?
ОТВЕТЫ
Ответ 1
Существует много способов сделать это, но да, это включает в себя создание случайного int (используя, например, java.util.Random.nextInt ), а затем используя это для сопоставления с char . Если у вас есть определенный алфавит, то что-то вроде этого отличное:
Отметим, что java.util.Random на самом деле является генератором псевдослучайных чисел на основе довольно слабой линейная конгруэнтная формула. Вы упомянули о необходимости криптографии; вы можете изучить использование более сильного криптографически защищенного генератора псевдослучайных чисел в этом случае (например, java.security.SecureRandom ).
Ответ 2
Чтобы создать случайный char в a-z:
Ответ 3
Вы также можете использовать RandomStringUtils из проекта Apache Commons:
Ответ 4
Генерирует значения в диапазонах a-z, A-Z.
Ответ 5
В соответствии с 97 значением ascii малого «a».
в выше 3 числа для a, b, c или d, и если u хочет, чтобы все символы, такие как a-z, вы заменяли 3 числа на 25.
Ответ 6
Ответ 7
Чтобы создать случайную строку, используйте метод anyString.
Вы можете создавать строки из более ограниченного набора символов или с ограничениями минимального/максимального размера.
Обычно вы запускаете тесты с несколькими значениями:
Ответ 8
данный chars вы можете создать «перетасованный» диапазон символов:
затем беря первые символы n , вы получите случайную строку длины n . Окончательный код просто:
NB: условие n > 0 перечеркнуто slice
как правильно указал Стив, randomString использует не более одного раза каждую букву. Как обходной путь вы можете повторить алфавит m раз перед вызовом shuffle :
или просто укажите свой алфавит как String :
Ответ 9
Ответ 10
У тебя это есть. Просто создайте случайные коды ASCII самостоятельно. Для чего вам это нужно?
Ответ 11
Взгляните на класс Java Randomizer. Я думаю, вы можете рандомизировать символ, используя метод randomize (char []).
Ответ 12
Ответ Polygenelubricants также является хорошим решением, если вы хотите генерировать только шестнадцатеричные значения:
Ответ 13
Мое предложение для генерации случайной строки со смешанным случаем типа: «DthJwMvsTyu».
Этот алгоритм основан на кодах ASCII букв, когда его коды az (от 97 до 122) и AZ (от 65 до 90) отличаются в 5-м бите (2 ^ 5 или 1 random.nextInt(2) : результат равен 0 или 1.
random.nextInt(2) : результат равен 0 или 32.
Верхний A равен 65, а нижний a равен 97. Разница только на 5-м бите (32), поэтому для генерации случайного символа мы делаем двоичный код OR ‘|’ случайный charCaseBit (0 или 32) и случайный код от A до Z (от 65 до 90).
Ответ 14
Вот код для генерации случайного буквенно-цифрового кода. Сначала вы должны объявить строку разрешенных символов, которую вы хотите включить в случайное число, а также определить максимальную длину строки.
Используйте метод toString(), чтобы получить String из StringBuilder
Ответ 15
Это простое, но полезное открытие. Он определяет класс с именем RandomCharacter с 5 перегруженными методами для случайного получения определенного типа символов. Вы можете использовать эти методы в ваших будущих проектах.
Чтобы продемонстрировать, как это работает, давайте взглянем на следующую тестовую программу, отображающую 175 случайных строчных букв.
Читайте также: Генератор ехать или не ехать
если вы запустите еще раз:
Я отдаю должное Ю.Даниэлю Лянгу за его книгу » Введение в программирование на Java, полная версия», 10-е издание, где я привел эти знания.
Ответ 16
Если вы не возражаете добавить новую библиотеку в свой код, вы можете генерировать символы с помощью MockNeat (отказ от ответственности: я один авторов).
Ответ 17
Позаботьтесь о том, что вы хотите, считая, что вы считаете «0», «1», «2».. как символы.
Генерация случайной строки заданного размера в Java
При заданном размере n задача состоит в том, чтобы сгенерировать случайную буквенно-цифровую строку этого размера.
Ниже приведены различные способы генерации произвольной буквенно-цифровой строки заданного размера:
-
Способ 1: использование Math.random ()
Здесь функция getAlphaNumericString (n) генерирует случайное число длины строки. Этот номер является индексом символа, и этот символ добавляется во временную локальную переменную sb. В конце концов, sb возвращается.
// Java-программа генерирует случайную буквенно-цифровую строку
// используя метод Math.random ()
public class RandomString Читайте также: Ямз 238 генератор подключение генератора
Ниже приведена реализация вышеуказанного подхода:
// Java-программа генерирует случайный
// UpperCase или LowerCase или Number String
static String getAlphaNumericString( int n)
// нижний предел для строчных букв
// нижний предел для строчных букв
Random random = new Random();
// Создать StringBuffer для сохранения результата
StringBuffer r = new StringBuffer(n);
// принимаем случайное значение от 97 до 122
int nextRandomChar = lowerLimit
* (upperLimit — lowerLimit + 1 ));
// добавить символ в конце bs
r.append(( char )nextRandomChar);
// возвращаем результирующую строку
public static void main(String[] args)
// размер случайной буквенно-цифровой строки
// Получить и отобразить буквенно-цифровую строку
Русские Блоги
Java генерирует случайные буквы и цифры
Функция: Генерация строки случайных букв и цифр
Входным параметром функции является длина сгенерированной случайной строки
Интеллектуальная рекомендация
Как обеспечить безопасность сети в эпоху больших данных?
С быстрым развитием Интернета он вступил в эру больших данных. С развитием цифровой экономики часто возникали такие проблемы, как безопасность сети и безопасность данных. В эпоху цифровой экономики во.
Основы Linux
1 Файловые команды 1.1 Формат команды 1.2 Команда обработки каталогов ls 1.3 ls -a просмотреть все файлы 1.4 ls -l 1,5 разрешения 1.6 ls -ld Просмотр подробной информации указанного каталога 1.7.
Повесьте модуль Dian oj1005, чтобы найти закон
Если вы используете рекурсию, памяти будет недостаточно. Этот вопрос касается мода, поэтому значение каждой функции фиксировано только на нескольких значениях: 0, 1, 2, 3, 4, 5, 6. И значение AB фикси.
Вопрос ACM / ICPC 2015 года, Шанхайский отдел B (структура + бинарное мышление)
Титульная ссылка:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5423 Намерение: дать вам n, k (n
Процесс инкапсуляции заголовка протокола TCP / IP UDP и данных, поступающих в стек протокола.
Инкапсуляция данных Инкапсуляция UDP Инкапсуляция TCP Инкапсуляция IP Алгоритм контрольной суммы Когда приложение использует TCP для передачи данных, данные передаются в стек протоколов, а затем прохо.
Генерация только случайных букв алфавита
Я создал программу, которая берет число от пользователя и генерирует в количестве, введенном пользователем, массив символов с прописными и строчными буквами (но без других символов), которые должны быть в произвольном порядке. Другими словами, если пользователь вводит 5, программа генерирует 5 случайных строчных / прописных букв, если пользователь вводит 25, программа генерирует 25 букв и т. Д. И т. Д. Моя программа почти полностью успешна, за исключением того, что я не могу найти хороший метод генерации ТОЛЬКО прописные или строчные буквы. Он также генерирует символы 91-96 ([, \,], ^, _, ‘), и я не хочу их.
Я попытался использовать операторы while и if, чтобы попытаться удалить нежелательные символы, а также в формуле Math.random, заменив 58 на «selectedChars.length», в котором есть все нужные символы, но, похоже, ничего не работает.
3 ответа
Вы можете редактировать цикл for следующим образом: цикл до получения того, что вам нужно. Мы генерируем случайное письмо. Если он не находится в диапазоне, который мы хотим, то мы зациклимся, пока это не то, что мы хотим.
Примечание. Мой ответ теоретически может вызвать бесконечный цикл, поскольку вероятность низкая.
Объяснение предложения @ тиброгарган. Это лучше, чем зацикливание до того, что мы получим. Основная идея состоит в том, чтобы сначала создать заглавную букву, а затем случайным образом добавить к ней 0 или 32. Добавление 0 не изменится, а добавление 32 сделает его строчным. Это не вызывает бесконечного цикла. Следующий код может быть использован для генерации случайного буквенного символа.
Читайте также: Ремень генератора киа рио 2014 когда менять
Вот один подход, который использует статическую строку, содержащую все возможные символы:
Для ввода number=10 был сгенерирован следующий вывод:
Java – Генерация Случайной Строки
Генерируйте ограниченные и неограниченные случайные строки, используя простую Java и библиотеку Apache Commons Lang.
В этом уроке мы покажем, как сгенерировать случайную строку в Java – сначала с помощью стандартных библиотек Java, затем с помощью варианта Java 8 и, наконец, с помощью библиотеки Apache Commons Lang .
Эта статья является частью серии “Java – Back to Basic” здесь, на Baeldung.
1. Сгенерируйте Случайную Неограниченную Строку С Помощью Простой Java
Давайте начнем с простого и сгенерируем случайную Строку , ограниченную 7 символами:
Имейте в виду, что новая строка не будет чем-то отдаленно буквенно-цифровым.
Дальнейшее чтение:
Эффективный калькулятор частоты слов на Java
Java – Случайные длинные, Плавающие, целочисленные и двойные
Руководство по пулу строк Java
2. Сгенерируйте Случайную Ограниченную Строку С Помощью Простой Java
Далее – давайте рассмотрим создание более ограниченной случайной строки; мы собираемся сгенерировать случайную Строку , используя строчные буквы алфавита и заданную длину:
3. Сгенерируйте Случайную Алфавитную Строку С Помощью Java 8
Теперь давайте использовать Random.ints – добавлено в JDK 8 – для создания алфавитной строки:
4. Сгенерируйте Случайную Буквенно-Цифровую Строку С Помощью Java 8
А затем мы можем расширить наш набор символов, чтобы получить буквенно-цифровую строку :
Обратите внимание на использование метода filter выше, чтобы исключить символы Юникода между 65 и 90 – чтобы избежать символов вне диапазона.
5. Сгенерируйте Ограниченную Случайную Строку С Помощью Apache Commons Lang
Библиотека Commons Lang от Apache очень помогает при генерации случайных строк. Давайте посмотрим на создание ограниченной строки с использованием только букв :
Поэтому – вместо всего низкоуровневого кода в примере Java-это делается с помощью простой однострочной строки.
6. Создайте Алфавитную Строку С Помощью Apache Commons Lang
Еще один очень простой пример – на этот раз ограниченная Строка только с буквенными символами, но без передачи логических флагов в API:
7. Сгенерируйте Буквенно-Цифровую Строку С Помощью Apache Commons Lang
И, наконец, – та же случайная ограниченная Строка , но на этот раз – числовая:
И вот у нас есть это – создание ограниченных и неограниченных строк с помощью простой Java, варианта Java 8 или библиотеки Apache Commons.
8. Заключение
С помощью различных методов реализации мы смогли генерировать связанные и несвязанные строки, используя обычную Java, вариант Java 8 или библиотеку Apache Commons.
В этих примерах Java мы использовали java.util.Random , но один момент, о котором стоит упомянуть, заключается в том, что он не является криптографически безопасным. Рассмотрите возможность использования java.security.SecureRandom вместо этого для приложений, чувствительных к безопасности.
Реализацию всех этих примеров и фрагментов можно найти в проекте GitHub . Это проект на основе Maven, поэтому его должно быть легко импортировать и запускать.
- Свежие записи
- Как я ремонтировала свой автомобиль
- Автомобильные зеркала
- Ностальгия по «бугатти»
- Тест драйв. OPEL MOKKA – лучший полноприводный кроссовер в своем классе
- McFarlan — от рассвета до заката
источники:https://dmsht.ru/java-generator-sluchaynyh-bukv