на тестах всё нормально проходит, но валидатор ругается. Пробовал и с регулярками, и с флагами. Какую ошибку не вижу?
package com.javarush.task.task32.task3204;
import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Random;
/*
Генератор паролей
*/
public class Solution {
static boolean flag1 = false;
static boolean flaga = false;
static boolean flagA = false;
public static void main(String[] args) {
ByteArrayOutputStream password = getPassword();
System.out.println(password.toString());
}
public static ByteArrayOutputStream getPassword() {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
while (byteArrayOutputStream.size() < 8){
if (byteArrayOutputStream.size() < 7) {
Random random = new Random();
int choice = random.nextInt(3);
byteArrayOutputStream.write(fill(choice));
} else{
if(!flag1){
byteArrayOutputStream.write(fill(0));
} else {
if(!flaga){
byteArrayOutputStream.write(fill(1));
} else {
byteArrayOutputStream.write(fill(2));
}
}
}
}
return byteArrayOutputStream;
}
public static int fill(int choice){
Random random = new Random();
int i;
if(choice == 0){
flag1 = true;
int min = 48;
int max = 57;
int diff = max - min;
i = random.nextInt(diff + 1) + min;
}else {
if (choice == 1) {
flaga = true;
int min = 97;
int max = 122;
int diff = max - min;
i = random.nextInt(diff + 1) + min;
} else {
flagA = true;
int min = 65;
int max = 90;
int diff = max - min;
i = random.nextInt(diff + 1) + min;
}
}
return i;
}
}