Open In App
Related Articles

Generate random String of given size in Java

Improve Article
Save Article
Like Article

Given a size as n, The task is to generate a random alphanumeric String of this size. Below are various ways to generate random alphanumeric String of given size: Prerequisite : Generating random numbers in Java

  • Method 1: Using Math.random() Here the function getAlphaNumericString(n) generates a random number of length a string. This number is an index of a Character and this Character is appended in temporary local variable sb. In the end sb is returned. 


// Java program generate a random AlphaNumeric String
// using Math.random() method
public class RandomString {
 // function to generate a random string of length n
 static String getAlphaNumericString(int n)
  // choose a Character random from this String
         + "0123456789"
         + "abcdefghijklmnopqrstuvxyz";
  // create StringBuffer size of AlphaNumericString
  StringBuilder sb = new StringBuilder(n);
  for (int i = 0; i < n; i++) {
   // generate a random number between
   // 0 to AlphaNumericString variable length
   int index
    = (int)(AlphaNumericString.length()
      * Math.random());
   // add Character one by one in end of sb
  return sb.toString();
 public static void main(String[] args)
  // Get the size n
  int n = 20;
  // Get and display the alphanumeric string


  • Method 2: Using CharSet Generate 20 character long alphanumeric string randomly using Charset which is in java.nio.charset package.
    1. First take char between 0 to 256 and traverse.
    2. Check char is alphabetic or numeric.
    3. If yes, then add at the end of our String
    4. Return String
  • Method 3: Using Regular Expressions
    1. First take char between 0 to 256.
    2. remove all char except 0-9, a-z and A-Z.
    3. Random select an char
    4. Add at the end our required variable
  • Method 4: Generating random String of UpperCaseLetter/LowerCaseLetter/Numbers When some specific characters are needed in the alphanumeric string, like only the UpperCaseLetter or LowerCaseLetter or Numbers, use this method. Below example generates a random String of LowerCase letters of size n. Below is the implementation of the above approach: 


// Java program generate a random AlphaNumeric String
// using CharSet method
import java.util.*;
import java.nio.charset.*;
class RandomString {
 static String getAlphaNumericString(int n)
  // length is bounded by 256 Character
  byte[] array = new byte[256];
  new Random().nextBytes(array);
  String randomString
   = new String(array, Charset.forName("UTF-8"));
  // Create a StringBuffer to store the result
  StringBuffer r = new StringBuffer();
  // Append first 20 alphanumeric characters
  // from the generated random String into the result
  for (int k = 0; k < randomString.length(); k++) {
   char ch = randomString.charAt(k);
   if (((ch >= 'a' && ch <= 'z')
    || (ch >= 'A' && ch <= 'Z')
    || (ch >= '0' && ch <= '9'))
    && (n > 0)) {
  // return the resultant string
  return r.toString();
 public static void main(String[] args)
  // size of random alphanumeric string
  int n = 20;
  // Get and display the alphanumeric string



Time complexity: O(n) where n is size of string to be generated

Auxiliary space: O(n) for StringBuffer

Last Updated : 26 Dec, 2022
Like Article
Save Article
Similar Reads
Related Tutorials