728x90
반응형

java.lang.Math.random() 을 이용하여 랜덤 숫자 만들기

 

Math.random() 메서드는 0.0 과 1.0 사이의 값 중 하나의 double 값을 생성한다.

만약 0~9 사이의 랜덤한 수를 구하고 싶다면

import java.lang.Math;

 

 System.out.println((int)(Math.random()*10));

(int)형으로 케스팅을 하지않으면 "2.4575805934491237" 이런식의 더블형 이 리턴 된다.

 

 

import java.util.Random 클래스를 이용한 임의의 숫자 만들기

import java.util.Random;

 

Random rnd = new Random();

 // 0~9까지의 정수를 랜덤하게 출력

 int i = rnd.nextInt(10);

 // 0.0f 에서 1.0f 까지의 실수를 랜덤하게 출력

 float f = rnd.nextFloat();
 // true(참), false(거짓) 중의 하나를 랜덤하게 출력

 Boolean b = rnd.nextBoolean();    

무작위 영문자 출력

random() 메서드의 활용하면 임의의 문자를 얻을수 있다. A~Z 사이의 문자를 랜덤하게 뽑아보자...

1.A 부터 Z 까지의 문자의 수는 26 개이다..

2.아스키코드는 65 부터 90 까지가 영문대문자를 표현한다.

-> 그럼 우리가 할일은 26까지의 랜덤한 수를 구하고 랜덤한수에 65 라는 수를 더한후 (char)형으로 케스팅을 하면 랜덤영문대문자를 뽑아낼수 있겠다.

import java.lang.Math;

 

System.out.println((char)((int)(Math.random()*26)+65));

참고로 영문 소문자는 아스키코드 97부터122까지 이다.

 

20자리  영문+숫자 랜덤코드 만들기

import java.util.Random;

 

Random rnd =new Random();

StringBuffer buf =new StringBuffer();

 

for(int i=0;i<20;i++){
    if(rnd.nextBoolean()){
        buf.append((char)((int)(rnd.nextInt(26))+97));
    }else{
        buf.append((rnd.nextInt(10))); 
    }
}

 

위의 Random 클래스 예제를 활용하여 만들어 봤습니다.

1. 일단은 영문과 숫자와의 조합을 이루어야 했기 때문에...nextBoolean() 메서드를 사용 하였습니다.

    rnd.nextBoolean() 메서드가 참을 리턴하면 랜덤 영문소문자를...거짓을리턴하면 랜덤숫자를 StringBuffer 를 이용하여

    각각의   랜덤 문자 하나씩 이어붙이기를 하였습니다. 

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,