Генерация случайной строки в Java — программа с Random и char

В этой программе мы научимся генерировать случайные строки заданной длины.

Пример 1: генерация случайной строки

import java.util.Random;

class Main {
  public static void main(String[] args) {

    // create a string of all characters
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    // create random string builder
    StringBuilder sb = new StringBuilder();

    // create an object of Random class
    Random random = new Random();

    // specify length of random string
    int length = 7;

    for(int i = 0; i < length; i++) {

      // generate random index number
      int index = random.nextInt(alphabet.length());

      // get character specified by index
      // from the string
      char randomChar = alphabet.charAt(index);

      // append the character to string builder
      sb.append(randomChar);
    }

    String randomString = sb.toString();
    System.out.println("Random String is: " + randomString);

  }
}

Вывод:

Random String is: IIYOBRK

В примере выше мы сначала создали строку со всеми буквами алфавита. Затем сгенерировали случайный индекс с помощью метода nextInt() класса Random.

По случайному индексу мы получаем случайный символ из строки alphabet. Затем используем класс StringBuilder, чтобы соединить все символы вместе.

Если нужно перевести случайную строку в нижний регистр, можно использовать метод toLowerCase() класса String:

randomString.toLowerCase()

Примечание

Каждый раз при запуске программы вывод будет разным.


Пример 2: генерация случайной буквенно-цифровой строки

import java.util.Random;

class Main {
  public static void main(String[] args) {

    // create a string of uppercase and lowercase characters and numbers
    String upperAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    String lowerAlphabet = "abcdefghijklmnopqrstuvwxyz";
    String numbers = "0123456789";

    // combine all strings
    String alphaNumeric = upperAlphabet + lowerAlphabet + numbers;

    // create random string builder
    StringBuilder sb = new StringBuilder();

    // create an object of Random class
    Random random = new Random();

    // specify length of random string
    int length = 10;

    for(int i = 0; i < length; i++) {

      // generate random index number
      int index = random.nextInt(alphaNumeric.length());

      // get character specified by index
      // from the string
      char randomChar = alphaNumeric.charAt(index);

      // append the character to string builder
      sb.append(randomChar);
    }

    String randomString = sb.toString();
    System.out.println("Random String is: " + randomString);

  }
}

Вывод:

Random Alphanumeric String is: pxg1Uzz9Ju

Здесь мы создали строку, которая содержит цифры от 0 до 9 и буквы алфавита в верхнем и нижнем регистре.

Из этой строки мы сгенерировали случайную буквенно-цифровую строку длиной 10 символов.