Не проходят пункты
- Пароль должен содержать хотя бы одну цифру.
- Пароль должен содержать хотя бы одну латинскую букву нижнего регистра.
- Пароль должен содержать хотя бы одну латинскую букву верхнего регистра.
Но не могу понять почему..
package com.javarush.task.task32.task3204;
import java.io.ByteArrayOutputStream;
import java.util.*;
/*
Генератор паролей
*/
public class Solution {
public static void main(String[] args) {
ByteArrayOutputStream password = getPassword();
System.out.println(password.toString());
}
public static ByteArrayOutputStream getPassword() {
byte[] bytes = new byte[8];
bytes = filPassword();
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
baos.write(bytes, 0, bytes.length);
return baos;
}
public static byte[] filPassword(){
char[] LOWER = "abcdefghijklmnopqrstuvwxyz".toCharArray();
char[] UPPER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
char[] DIGITS = "0123456789".toCharArray();
int up = 0;
int lo = 0;
int di = 0;
int r;
byte[] bytess = new byte[8];
Random random = new Random();
for (int i = 0; i < bytess.length; i++) {
r = random.nextInt(3);
switch(r){
case 0: bytess[i] = (byte)LOWER[random.nextInt(26)];
lo++;
break;
case 1: bytess[i] = (byte)UPPER[random.nextInt(26)];
up++;
break;
default: bytess[i] =(byte)DIGITS[random.nextInt(10)];
di++;
break;
}
}
if (di == 0 || lo == 0 || up == 0){
filPassword();
}
return bytess;
}
}