apache commons-lang 라이브러리와 Java Set을 이용하여 원하는 개수의 랜덤 문자열(난수)을 생성할 수 있습니다.
1. apache commons-lang 의존성 추가
// build.gradle
implementation 'org.apache.commons:commons-lang3:3.12.0'
2. Set 사용 중복 제거
– Set은 중복이 불가능한 것을 이용
– 중복되면 Set에 추가되지 않고 set.size() 증가하지 않기 때문에 원하는 개수(100개) 생성 가능
// 100개 난수 생성
Set<String> set = new HashSet<>();
while (set.size() < 100) {
String randomText = RandomStringUtils.randomAlphabetic(4).toUpperCase() + String.format("%04d", 유니크값);
set.add(randomText);
}
List<String> randomTextList = new ArrayList<>(set);
3. RandomStringUtils.random 함수
- RandomStringUtils.random(int count)
- 길이가 count인 임의의 문자를 생성합니다.
- RandomStringUtils.random(int count, boolean letters, boolean numbers)
- letters, numbers 는 true일 경우 문자나 숫자만으로 생성하는 파라미터 입니다.
- RandomStringUtils.random(int count, int start, int end, boolean letters, boolean numbers)
- start, end는 아스키코드의 랜덤으로 생성할 문자열의 아스키코드 처음, 마지막을 의미합니다.
- letters, numbers 는 true일 경우 문자나 숫자만으로 생성하는 파라미터 입니다.
- RandomStringUtils.randomAlphabetic(int count)
- 길이가 count인 대소문자 영어 문자열을 생성합니다.
- RandomStringUtils.randomNumeric(int count)
- 길이가 count인 숫자를 랜덤으로 생성합니다.
- RandomStringUtils.randomAlphanumeric(int count)
- 길이가 count인 대소문자, 숫자를 랜덤으로 생성합니다.
- RandomStringUtils.randomAscii(int count)
- 길이가 count인 아스키코드(32~126) 사이의 코드를 랜덤으로 생성합니다.