컴공생의 다이어리

[자바, Java] Apache Commons Lang을 사용해 랜덤 문자열 생성 본문

Development/Java

[자바, Java] Apache Commons Lang을 사용해 랜덤 문자열 생성

컴공 K 2022. 3. 3. 00:01

Java Apache Commons Lang을 사용해 랜덤 문자열 생성

랜덤 문자열을 생성하고자 할 때, 직접 구현해도 되지만 이미 구현되어 있는 라이브러리를 사용하는 것이 더 편리하다. 오늘은 이미 구현되어 있는 라이브러리인 Apache Commons Lang을 사용해 랜덤 문자열을 생성하는 것에 대해서 정리하고자 한다.

 

 

Apache Commons Lang을 사용하려면 직접 컴퓨터에 다운받거나 Maven이나 Gradle을 통해 받으면 된다. 만일 컴퓨터에 다운받으려고 한다면 아래 링크에서 버전을 선택해서 다운받으면 된다.

https://commons.apache.org/proper/commons-lang/download_lang.cgi

 

Lang – Download Apache Commons Lang

Download Apache Commons Lang Using a Mirror We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hour

commons.apache.org

 

 

Gradle이나 Maven으로 다운받기 위해서는 아래 링크에서 원하는 버전을 선택해 적용하면 된다.

https://mvnrepository.com/artifact/org.apache.commons/commons-lang3

 

나의 경우에는 build.gradle에 아래와 같이 추가했다.

implementation 'org.apache.commons:commons-lang3:3.12.0'

 

 

RandomStringUtils Method

RandomStringUtils.random(int count)
  • 임의의 문자를 count만큼 랜덤으로 생성
  • count : 문자열 길이

 

RandomStringUtils.random(int count, char[] chars)
  • 지정한 char 배열에서 count만큼 랜덤으로 생성
  • count : 문자열 길이
  • chars : 문자 배열

 

RandomStringUtils.random(int count, String chars)
  • 지정한 문자열에서 count만큼 랜덤으로 생성
  • count : 문자열 길이
  • chars : 문자열

 

RandomStringUtils.random(int count, int start, int end, boolean letters, boolean number)
  • 임의의 문자를 start부터 end까지의 범위에서 count만큼 랜덤으로 생성
  • count : 문자열 길이
  • start : 아스키코드 처음
  • end : 아스키코드 마지막
  • letters : true 선택시 문자 포함 생성, false 선택시 문자 포함 X
  • numbers : true 선택시 숫자 포함 생성, false 선택시 숫자 포함 X

 

RandomStringUtils.randomAlphabetic(int count)
  • 영문 대소문자를 count만큼 랜덤으로 생성
  • count : 문자열 길이

 

RandomStringUtils.randomNumeric(int count)
  • 숫자를 count만큼 랜덤으로 생성
  • count : 문자열 길이

 

RandomStringUtils.randomAlphanumeric(int count)
  • 대소문자, 숫자를 count만큼 랜덤으로 생성
  • count : 문자열 길이

 

RandomStringUtils.randomAscii(int count)
  • 아스키코드를 count만큼 랜덤으로 생성
  • count : 문자열 길이

 

 

import org.apache.commons.lang3.RandomStringUtils;

public class RandomString {
    public static void main(String[] args) {
        // 임의의 문자를 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.random(int count)");
        System.out.println(RandomStringUtils.random(10));

        // 지정한 char 배열에서 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.random(int count, char[] chars)");
        System.out.println(RandomStringUtils.random(10, new char[]{'A', 'B', 'C'}));

        // 지정한 문자열에서 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.random(int count, String chars)");
        System.out.println(RandomStringUtils.random(10, "ABC"));

        // 임의의 문자를 start부터 end까지의 범위에서 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.random(int count, int start, int end, boolean letters, boolean number)");
        System.out.println(RandomStringUtils.random(10, 33, 125, false, false));
        System.out.println(RandomStringUtils.random(10, 33, 125, true, false));
        System.out.println(RandomStringUtils.random(10, 33, 125, false, true));
        System.out.println(RandomStringUtils.random(10, 33, 125, true, true));

        // 영문 대소문자를 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.randomAlphabetic(int count)");
        System.out.println(RandomStringUtils.randomAlphabetic(10));

        // 숫자를 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.randomNumeric(int count)");
        System.out.println(RandomStringUtils.randomNumeric(10));

        // 대소문자, 숫자를 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.randomAlphanumeric(int count)");
        System.out.println(RandomStringUtils.randomAlphanumeric(10));

        // 아스키코드를 count만큼 랜덤으로 생성
        System.out.println(">>>> RandomStringUtils.randomAscii(int count)");
        System.out.println(RandomStringUtils.randomAscii(10));
    }
}

 

 

 

 

 

 

https://commons.apache.org/proper/commons-lang/javadocs/api-3.9/org/apache/commons/lang3/RandomStringUtils.html

 

RandomStringUtils (Apache Commons Lang 3.9 API)

static String random(int count, int start, int end, boolean letters, boolean numbers, char[] chars, Random random) Creates a random string based on a variety of options, using supplied source of randomness.

commons.apache.org

https://devbible.tistory.com/394

 

[Java] 랜덤 문자열 (Random String) 만들기

랜덤 문자열을 생성하고자 한다. 직접 구현해도 되지만 이미 구현되어있는 라이브러리를 쓰는게 편하다. Apache Commons Lang 을 사용하면된다. 아래 링크로 들어가서 다운받거나 http://commons.apache.org/

devbible.tistory.com

 

728x90
Comments