반응형
자릿수를 입력하면 숫자, 대소문자 중
랜덤으로 자릿수에 맞춰 출력해주는 코드인데
이거 수작업으로 만들라면 손도 많이가고 귀찮다
하지만 남이 만든 코드를 하나 만들어 놓고
거기서 뽑아쓰면 굉장히 편하게 랜덤값을 구할 수 있다
먼저 아래 코드를 복사한 뒤
import java.security.SecureRandom;
import java.util.Locale;
import java.util.Objects;
import java.util.Random;
public class RandomString {
public String nextString() {
for (int idx = 0; idx < buf.length; ++idx)
buf[idx] = symbols[random.nextInt(symbols.length)];
return new String(buf);
}
public static final String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String lower = upper.toLowerCase(Locale.ROOT);
public static final String digits = "0123456789";
public static final String alphanum = upper + lower + digits;
private final Random random;
private final char[] symbols;
private final char[] buf;
public RandomString(int length, Random random, String symbols) {
if (length < 1) throw new IllegalArgumentException();
if (symbols.length() < 2) throw new IllegalArgumentException();
this.random = Objects.requireNonNull(random);
this.symbols = symbols.toCharArray();
this.buf = new char[length];
}
/**
* Create an alphanumeric string generator.
*/
public RandomString(int length, Random random) {
this(length, random, alphanum);
}
/**
* Create an alphanumeric strings from a secure generator.
*/
public RandomString(int length) {
this(length, new SecureRandom());
}
/**
* Create session identifiers.
*/
public RandomString() {
this(21);
}
}
RandomString이라는 클래스를 만들고 내용을 붙여넣는다
이후 RandomString rs = new RandomString(자리수);
와 같이 객체화를 시켜주면 되는데
이후 nextString()으로 랜덤 값을 뽑아낼 수 있다
이게 전부이므로
클래스를 옮기고 자리수를 넣고 객체화 후
.nextString()으로 뽑아내는 것만 기억해주면 되겠다
반응형
'Language > Java' 카테고리의 다른 글
자바 Timestamp를 이용한 현재 시간 구하는 방법 (0) | 2020.11.19 |
---|---|
자바 JDK JRE 차이 정리 (0) | 2020.11.10 |
자바 Random 함수 개념 및 사용법 정리 (0) | 2020.10.28 |
자바 UUID란? 개념부터 생성, 사용법 정리 (2) | 2020.10.28 |
자바 import 예제 및 개념정리 (0) | 2020.10.21 |
댓글