자바에서는 Random 클래스와 Math 클래스를 사용하여 편리하게 random value 를 생성할 수 있습니다.

자바 랜덤함수(Java Random)

 

 

그러나 랜덤 문자열(random string) 을 만들기 위해서는 추가적으로 간단한 구현이 필요합니다.

지금부터는 random string 을 만들기 위한 방법에 대해 설명하도록 하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Random;
 
public class RandomString {
    private static final char[] chars;
    static {
        StringBuilder buffer = new StringBuilder();
        for (char ch = '0'; ch <= '9'; ++ch)
            buffer.append(ch);
        for (char ch = 'a'; ch <= 'z'; ++ch)
            buffer.append(ch);
        for (char ch = 'A'; ch <= 'Z'; ++ch)
            buffer.append(ch);
        chars = buffer.toString().toCharArray();
    }
 
    public static String random(int length) {
        if (length < 1)
            throw new IllegalArgumentException("length < 1: " + length);
 
        StringBuilder randomString = new StringBuilder();
        Random random = new Random();
        
        for (int i = 0; i < length; i++) {
            randomString.append(chars[random.nextInt(chars.length)]);
        }
        return randomString.toString();
    }
 
    public static void main(String[] args) {
        System.out.println(random(10));
    }
}
cs

 

위의 random() 메소드는 글자의 길이(length) 를 파라미터로 입력 받아

원하는 크기의 random string 생성하고 있습니다.

 

chars 배열을 통해 원하는 문자(숫자, 소문자, 소문자)들을 기초로 하여

Random 클래스의 nextInt() 메소드에서 발생시키는 위치의 배열 값을 차곡차곡 쌓아

지정된 길이 만큼의 string 을 생성해서 반환합니다.

 

이외에도 "~!@#$%^&*()_+{}|\\\"`;:'<>?,./=-[]" 와 같은 특수 기호들을 포함할 수도 있습니다.

 

<출력>

3ifL5KImXd

 

 

추가적으로 stackoverflow 를 통해서 더 다양한 방법을 확인 할 수 있습니다.

 

 

Posted by maze1008
,