Вот эта строка кода добавляет обязательную цифру
array[r.nextInt(8)] = (char)(r.nextInt(10) + 48);
public static ByteArrayOutputStream getPassword() {
ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
Random r = new Random();
List<Character> list = new ArrayList<>();
for(int i = 48; i < 58; i++) list.add((char)i);
for(int i = 65; i < 91; i++) list.add((char)i);
for(int i = 97; i < 123; i++) list.add((char)i);
char[] array = new char[8];
array[r.nextInt(8)] = (char)(r.nextInt(10) + 48);
array[r.nextInt(8)] = (char)(r.nextInt(26) + 65);
array[r.nextInt(8)] = (char)(r.nextInt(26) + 97);
for(int i = 0; i < array.length; i++) {
if ((int)array[i] == 0) array[i] = list.get(r.nextInt(list.size()));
}
String result = new String(array);
try {
bos.write(result.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
return bos;
}
package com.javarush.task.task32.task3204;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/*
Генератор паролей
*/
public class Solution {
public static void main(String[] args) {
ByteArrayOutputStream password = getPassword();
System.out.println(password.toString());
}
public static ByteArrayOutputStream getPassword() {
ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
Random r = new Random();
List<Character> list = new ArrayList<>();
for(int i = 48; i < 58; i++) list.add((char)i);
for(int i = 65; i < 91; i++) list.add((char)i);
for(int i = 97; i < 123; i++) list.add((char)i);
char[] array = new char[8];
array[r.nextInt(8)] = (char)(r.nextInt(10) + 48);
array[r.nextInt(8)] = (char)(r.nextInt(26) + 65);
array[r.nextInt(8)] = (char)(r.nextInt(26) + 97);
for(int i = 0; i < array.length; i++) {
if ((int)array[i] == 0) array[i] = list.get(r.nextInt(list.size()));
}
String result = new String(array);
try {
bos.write(result.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
return bos;
}
}