Генерация случайной строки заданного размера в Java
При заданном размере n задача состоит в том, чтобы сгенерировать случайную буквенно-цифровую строку этого размера.
Ниже приведены различные способы генерации произвольной буквенно-цифровой строки заданного размера:
-
Способ 1: использование Math.random ()
Здесь функция getAlphaNumericString (n) генерирует случайное число длины строки. Этот номер является индексом символа, и этот символ добавляется во временную локальную переменную sb. В конце концов, sb возвращается.
// Java-программа генерирует случайную буквенно-цифровую строку
// используя метод Math.random ()
public class RandomString Читайте также: Чем смазать ремень генератора чтобы не скрипел
// Создать 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
У меня есть объект под названием Student и имеет studentName , studentId , studentAddress и т. д. Для studentId Я должен генерировать случайные строки, состоящие из семи числовых символов, например.
И я должен убедиться, что нет дубликатов идентификаторов.
7 ответов
Создать случайную строку символов легко — просто используйте java.util.Random и строка, содержащая все символы, которые вы хотите быть доступными, например,
Теперь для уникальности вам нужно где-то хранить сгенерированные строки. Как вы это сделаете, будет зависеть от остальной части вашего приложения.
Если вам нужна уникальность (с высокой вероятностью), рассмотрите возможность использования хэшей MD5 или SHA.
Вы также можете использовать класс UUID из пакета java.util, который возвращает случайный uuid из 32-битных символов String.
Я думаю, что следующий код класса поможет вам. Он поддерживает многопоточность, но вы можете сделать некоторые улучшения, такие как удаление блока синхронизации и синхронизация с методом getRandomId().
Вы знаете, как генерировать случайным образом целое число правильно? Таким образом, вы можете сгенерировать символ из него. (ex 65 -> A)
Это зависит от того, что вам нужно, от уровня случайности, от уровня безопасности. но для школьного проекта я думаю, что подстрока UUID подойдет:)
Первый вопрос, который вам нужно задать, заключается в том, нужен ли вам действительно случайный идентификатор. Иногда последовательные идентификаторы достаточно хороши.
Теперь, если вам нужно, чтобы оно было случайным, сначала отметим, что сгенерированная последовательность чисел, не содержащая дубликатов, не может быть названа случайной.:p Теперь, когда мы избавились от этого, самый быстрый способ сделать это — это иметь Hashtable или же HashMap содержит все идентификаторы уже сгенерированы. Всякий раз, когда генерируется новый идентификатор, сверяйте его с хеш-таблицей, генерируйте заново, если идентификатор уже существует. Как правило, это будет хорошо работать, если число студентов намного меньше, чем диапазон идентификаторов. Если нет, у вас возникнут более серьезные проблемы, так как возрастает вероятность того, что вам понадобится восстановить идентификатор, P(создать новый идентификатор) = number_of_id_already_generated / number_of_all_possible_ids. В этом случае вернитесь к первому абзацу (нужен ли идентификатор, чтобы он был случайным?).
Русские Блоги
Способы случайной генерации строк в java (три)
1. Первый типКаждая позиция сгенерированной строки может быть буквой или числом в строке str. Пакет, который необходимо импортировать, — это import java.util.Random;
2. Второй типВы можете указать местоположение как a-z, A-Z или 0-9, а импортируемый пакет — import java.util.Random;
3. Третий типВ пакете org.apache.commons.lang есть класс RandomStringUtils, который имеет функцию randomAlphanumeric (int length), которая может произвольно генерировать строку длины length.
// Создание 5-значной случайной строки, которая искажена в китайской среде
RandomStringUtils.random(5);
Читайте также: Генератор импульсов 555 с регулировкой скважности
// Используйте указанные символы для генерации случайной строки длиной 5 бит
RandomStringUtils.random(5, new char[] );
// Создание случайной комбинации букв и цифр указанной длины
RandomStringUtils.randomAlphanumeric(5);
// Генерируем строку случайных чисел
RandomStringUtils.randomNumeric(5);
// Генерация случайной строки [a-z], включая регистр
RandomStringUtils.randomAlphabetic(5);
// Генерируем случайную строку от 32 до 126 ASCII
RandomStringUtils.randomAscii(4)
Интеллектуальная рекомендация
Первая весна — ленивая роль
В файле XML Lazy-init верно, если true, указывая на «ленивый» загрузку, то есть создать объект при использовании только метода GetBean (); если False, это означает «не ленивый».
Тепловой дизайн ПЛИС
Чтобы любой чип работал, он должен соответствовать определенному температурному диапазону. Эта температура относится к температуре кремниевого чипа, которую обычно называют температурой перехода. ПЛИС.
[WebApi] Вызов интерфейса Web Api через HttpClient
HttpClient — это инкапсулированный класс, реализованный на многих языках. Последняя версия HttpClient — 4.5. Он поддерживает все методы http, автоматическое перенаправление, протокол https, прокси-сер.
Глубокое понимание анализа загрузчика (двух) классов виртуальных машин Java
Процесс загрузки класса •Класс загрузки: Загрузчик класса будетФайлы классов загружаются в память виртуальной машины •Загрузка: найти и прочитать файл байт-кода на жестком диске через IO &bu.
поток событий js и блокировка событий
поток событий js и блокировка событий Процесс распространения событий js в основном делится на три этапа: Фаза захвата события: найти элементы снаружи внутрь На целевом этапе: действия самого источник.
Генерация случайных строк
Здравствуйте.
Задача сделать генерацию случайных строк которые имеют в себе строчные латинские (английские) буквы и цифры.
Задача на 50% сделана. Генерация происходит, теперь нужно разделить строку пробелами.
Нужно сделать строку численностью 25 символов, каждые пять символов через тире, что-то такое: 0GYDS-M525B-0P8AV-SISC1-T82RN, выходит вот такое: 0GYDSM525B0P8AVSISC1T82RN.
Подскажите как добавать разделитель, чтоб эту строку можно было присвоить переменной для сравнения.
Вот код работающий на половину:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Генерация случайных чисел
Не могу понять как генерировать случайные числа с двумя знаками после запятой. Вот программа.
Генерация случайных чисел
Помогите решить задачу. Рандомно генерируется число, это число записывается в список. Потом число.
Генерация уникальных случайных чисел
Делаю метод, который должен возвращать int не повторяющихся случайных чисел. Столкнулся с.
Генерация случайных чисел, кратных 10
собственно есть вопрос который я знаю как решить,но интересно узнать можно ли его реализовать с.
Спасибо за идею, сразу в голову не пришло.
Добавлено через 9 минут
Смысл +/- понял, вот как реализовать %5==0 в цикле не пойму..
В консоли:
Your Password: U-54GC-DIMI-5CV6-JF24-JABG-WQ
Сейчас еще с циклом for попробую.
Добавлено через 3 минуты
Все понял как это работает, DimaxDe, JIeIIIa, Pablito, спасибо большое за помощь!
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Генерация случайных чисел в матрице
Здраствуйте я еще новичок в JAVA))мне надо написать программу так чтобы пользователь вводил размер.
Генерация случайных чисел в определенном промежутке
Добрый день. Как мне в java сгенерировать случайное числа в определенном промежутке ? Т.е я задаю 2.
Читайте также: Акб для дизельного генератора
Генерация Случайных Строк.
В общем, доброго времени суток всем. Не ожидал, что буду писать на форуме, но действительно.
Генерация строк из случайных символов массива
Запросить у пользователя количество строк, которые нужно сгенерировать, минимальное и максимальное.
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-strok