본문 바로가기
Java

자바 랜덤키

by NaHyungMin 2021. 5. 13.

기존에 누군가 구현해놨던 코드가 prefix + random 숫자 5 이었는데 중복 키가 났다.

prefix 배열도 자그만치 51개.

 

51 x random 5숫자로 처리한게 문제라서 시간 날때 수정했음.

 

처음에는 그냥 nano나 currentTimeMillis 뽑아서 16진수로 만드려고 시도했다.

구현하다 생각하니 이거나 UUID나 결국 16진수란걸 생각해서 접음.

 

public static String randomKeys(int length) {
    StringBuilder sb = new StringBuilder();
    Random random = new Random();
    int minA = 65; //A
    int maxZ = 90; //Z

    for (int i = 0; i < length; i++) {
      if (random.nextBoolean() == true) {
        sb.append(random.nextInt(10));
      } else {
        int ascKeyCode = (int) ((Math.random() * (maxZ - minA)) + minA);
        sb.append((char)ascKeyCode);
      }
    }

    return sb.toString();
  }

 

그냥 대문자만 뽑는걸로 했는데, 소문자도 사용 가능하다면 로직 좀 추가해야 함.

회사 데이터베이스가 대소문자 가리는 binary 타입이 아니기에 그냥 대문자로만 구현...

'Java' 카테고리의 다른 글

자바 프로그래머스 위클리 챌린지 8주차  (0) 2021.10.01
자바 임의 값 0~100 랭크 구하기  (0) 2021.09.16
자바 Json Parser  (0) 2021.02.22
자바 Log Class  (0) 2021.02.22
자바 Aspect, Annotation으로 Log 만들기  (0) 2021.02.22