Generate a Random String of Specific Length in Java
Here is a Java code to generate a random String of specific length:
import java.security.SecureRandom;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class RandomManager {
private static String UPPER_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static String LOWER_CHAR = "abcdefghijklmnopqrstuvwxyz";
private static String NUMBER = "0123456789";
private static String SPECIAL_CHAR = "!@#$*";
private static String ALL_CHARS = UPPER_CHAR + LOWER_CHAR + NUMBER + SPECIAL_CHAR;
private static SecureRandom random = new SecureRandom();
public static String generateRandomString(int length) {
StringBuilder randomBuilder = new StringBuilder(length);
for (int i = 0; i < length; i++) {
int randChar = random.nextInt(ALL_CHARS.length());
char randUpChar = ALL_CHARS.charAt(randChar);
randomBuilder.append(randUpChar);
}
List<String> randomList = Arrays.asList(randomBuilder.toString().split(""));
Collections.shuffle(randomList);
return randomList.stream().collect(Collectors.joining());
}
public static void main(String args[]) {
System.out.println(generateRandomString(10));
}
}
Output:
6AudUGGkXt