import java.security.SecureRandom;
public class RandomStringGenerator {
private static final String UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String DIGITS = "0123456789";
private static final String ALL_CHARS = UPPERCASE + DIGITS;
private static final SecureRandom random = new SecureRandom();
public static String generateRandomString(int length) {
String result;
do {
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int index = random.nextInt(ALL_CHARS.length());
sb.append(ALL_CHARS.charAt(index));
}
result = sb.toString();
} while (isOnlyDigits(result) || isOnlyUppercase(result));
return result;
}
private static boolean isOnlyDigits(String str) {
return str.chars().allMatch(Character::isDigit);
}
private static boolean isOnlyUppercase(String str) {
return str.chars().allMatch(Character::isUpperCase);
}
public static boolean containsNumAndLetter(String input) {
String regex = "^(?=.*[0-9])(?=.*[A-Z]).+$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
return matcher.matches();
}
public static void main(String[] args) {
String randomString = generateRandomString(6);
System.out.println(randomString);
}
}