Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/64: Рейтинг темы: голосов - 64, средняя оценка - 4.70
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32

Генерация случайных строк

19.11.2018, 16:12. Показов 12131. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Задача сделать генерацию случайных строк которые имеют в себе строчные латинские (английские) буквы и цифры.

Задача на 50% сделана. Генерация происходит, теперь нужно разделить строку пробелами.
Нужно сделать строку численностью 25 символов, каждые пять символов через тире, что-то такое: 0GYDS-M525B-0P8AV-SISC1-T82RN, выходит вот такое: 0GYDSM525B0P8AVSISC1T82RN.

Подскажите как добавать разделитель, чтоб эту строку можно было присвоить переменной для сравнения.

Вот код работающий на половину:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Random;
 
public class Test {
 
    public static void main(String[] args) {
        int length = 25;
        System.out.println(generatePswd(length));
    }
 
    public static char[] generatePswd(int len) {
        System.out.println("Your Password: ");
        String charsCaps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String nums = "0123456789";
        String passSymbols = charsCaps + nums;
        Random rnd = new Random();
        char[] password = new char[len];
 
        for (int i = 0; i < len; i++) {
            password[i] = passSymbols.charAt(rnd.nextInt(passSymbols.length()));
        }
        return password;
 
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2018, 16:12
Ответы с готовыми решениями:

Генерация случайных чисел
Не могу понять как генерировать случайные числа с двумя знаками после запятой. Вот программа. import java.util.Scanner; import...

Генерация случайных чисел
Помогите решить задачу. Рандомно генерируется число, это число записывается в список. Потом число генерируется по новой, но из диапазона...

Генерация уникальных случайных чисел
Делаю метод, который должен возвращать int не повторяющихся случайных чисел. Столкнулся с проблемами: - while висит в бесконечном...

9
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
19.11.2018, 16:17
в цикл фор вставить коунтер и если count%5==0 тогда добавить -
пардон..тамже можно сразу i проверить..коунтер ненадо доолнительный
1
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
19.11.2018, 16:29  [ТС]
Спасибо за идею, сразу в голову не пришло.

Добавлено через 9 минут
Смысл +/- понял, вот как реализовать %5==0 в цикле не пойму..
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
19.11.2018, 16:34
Java
1
if(i%5==0){password[i+1]="-";i++}
ну и длинну увеличить на 4 потому как 4 черточки будет
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
19.11.2018, 16:37
muskather, заменить каждый пятый символ на пробел:
Java
1
2
3
for (int i = 4; i < password.length; i += 5 ) {
   password[i] = ' ';
}
1
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
19.11.2018, 16:39
Цитата Сообщение от JIeIIIa Посмотреть сообщение
muskather, заменить каждый пятый символ на пробел:
JavaВыделить код
1
2
3
for (int i = 4; i < password.length; i += 5 ) {
* *password[i] = ' ';
}
в том и суть что не заменить а разделить
1
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
19.11.2018, 16:45
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Test {
 
    public static void main(String[] args) {
        int length = 25;
        System.out.println("Your Password: ");
        System.out.println(generatePwd(length));
    }
 
    private static String generatePwd(int len) {
        String charsCaps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String nums = "0123456789";
        String passSymbols = charsCaps + nums;
        Random rnd = new Random();
 
        final StringBuilder sb = new StringBuilder();
        for (int i = 0; i < len; i++) {
            if (i % 5 == 0 && i > 0) {
                sb.append('-');
            }
            sb.append(passSymbols.charAt(rnd.nextInt(passSymbols.length())));
        }
        return sb.toString();
    }
}
1
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
19.11.2018, 16:51  [ТС]
DimaxDe, да, условие не верно расписал. Вот что выходит у меня:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Random;
 
public class Test {
 
    public static void main(String[] args) {
        int length = 29;
        System.out.println(generatePswd(length));
    }
 
    public static char[] generatePswd(int len) {
        System.out.print("Your Password: ");
        String passSymbols = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        Random random = new Random();
        char[] password = new char[len];
 
        for (int i = 0; i < len; i++) {
            password[i] = passSymbols.charAt(random.nextInt(passSymbols.length()));
 
            if (i % 5 == 0) {
                password[i + 1] = (char) '-';
                i++;
            }
        }
        return password;
    }
}
В консоли:
Your Password: U-54GC-DIMI-5CV6-JF24-JABG-WQ

Сейчас еще с циклом for попробую.

Добавлено через 3 минуты
Все понял как это работает, DimaxDe, JIeIIIa, Pablito, спасибо большое за помощь!
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
19.11.2018, 16:56
Java
1
if(i%5==0&&i>0){password[i+1]="-";i=i+1}
тоже вариант Pablito,правильно сделал что больше нуля проверил
1
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
19.11.2018, 17:04  [ТС]
Все варианты дали понять как это работает, в голове осталась реализация и понимание - это главное.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.11.2018, 17:04
Помогаю со студенческими работами здесь

Генерация случайных чисел, кратных 10
собственно есть вопрос который я знаю как решить,но интересно узнать можно ли его реализовать с помощью класса рандом либо возможно...

Генерация случайных чисел в матрице
Здраствуйте я еще новичок в JAVA))мне надо написать программу так чтобы пользователь вводил размер матрицы(минимум 10х10) и потом...

Генерация случайных чисел в определенном промежутке
Добрый день. Как мне в java сгенерировать случайное числа в определенном промежутке ? Т.е я задаю 2 параметра a,b и мне генерирует...

Генерация Случайных Строк.
В общем, доброго времени суток всем. Не ожидал, что буду писать на форуме, но действительно требуется помощь. Возможно идея, которая не...

Генерация строк из случайных символов массива
Запросить у пользователя количество строк, которые нужно сгенерировать, минимальное и максимальное количество символов в строке и название...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru