반응형
[Java] 인증번호 2자리 4자리 6자리 등 난수 생성 (중복허용, 중복제거)
- 피곤하다 만들고 싶은게 생겼다
1. 무엇을 만들고 싶었는가
- 인증번호를 생성하고 싶다
- 특정 자리수에 맞게 하나의 메소드로 난수를 생성하고싶다 (2자리, 4자리, 6자리 등)
- 때로는 중복을 허용하고 때로는 중복을 제거하고 싶다. 물론 하나의 메소드에서
2. 만들어진 메소드
- 메소드명 : numberGen
- 파라미터 : {
len : 생성할 난수의 길이
,dupCd : 중복 허용 여부 (1: 중복허용, 2: 중복제거)
}
- 주석을 이미 다 달아놨기 때문에 할말이 없다. 판단은 독자의 몫
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 33 34 | /** * 전달된 파라미터에 맞게 난수를 생성한다 * @param len : 생성할 난수의 길이 * @param dupCd : 중복 허용 여부 (1: 중복허용, 2:중복제거) * * Created by 닢향 * http://niphyang.tistory.com */ public static String numberGen(int len, int dupCd ) { Random rand = new Random(); String numStr = ""; //난수가 저장될 변수 for(int i=0;i<len;i++) { //0~9 까지 난수 생성 String ran = Integer.toString(rand.nextInt(10)); if(dupCd==1) { //중복 허용시 numStr에 append numStr += ran; }else if(dupCd==2) { //중복을 허용하지 않을시 중복된 값이 있는지 검사한다 if(!numStr.contains(ran)) { //중복된 값이 없으면 numStr에 append numStr += ran; }else { //생성된 난수가 중복되면 루틴을 다시 실행한다 i-=1; } } } return numStr; } | cs |
3. 실행
1 2 3 4 5 6 7 | System.out.println("numberGen(2,1) : " + numberGen(2,1)); //2자리 중복허용 System.out.println("numberGen(2,2) : " + numberGen(2,2)); //2자리 중복제거 System.out.println("numberGen(4,1) : " + numberGen(4,1)); //4자리 중복허용 System.out.println("numberGen(4,2) : " + numberGen(4,2)); //4자리 중복제거 System.out.println("numberGen(6,1) : " + numberGen(6,1)); //6자리 중복허용 System.out.println("numberGen(6,2) : " + numberGen(6,2)); //6자리 중복제거 | cs |
4. 실행결과
- 중복된 값이 안나와서 한참을 돌렸다. 어쨋든 성공
5. 끝
- 피곤한 개발자 피로그래머
- 나도 피곤하고 여러분도 피곤할테니 마음껏 긁으라고 우클릭 방지는 해놓지 않았으나 양심상 출처는 밝혀주자
반응형
'개발 > Java' 카테고리의 다른 글
[Spring] Session Timeout 설정 3가지 방법 (0) | 2023.04.24 |
---|---|
[Tomcat 에러] org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor (0) | 2021.09.08 |
JAVA HTTP POST 전송 예제 (0) | 2019.10.28 |
자바 정규식 html 태그를 제외한 문자열 출력 (0) | 2019.09.09 |