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 를 이용하여
각각의 랜덤 문자 하나씩 이어붙이기를 하였습니다.
'JAVA' 카테고리의 다른 글
[JAVA] 문서파일 생성하여 다운 (0) | 2014.03.05 |
---|---|
<JAVA_API> JAVA Program 수행시간 체크 : Time Checking (0) | 2014.03.04 |
[JAVA] 현재 날짜(시간) 구하기 - 월/요일을 한글/영문으로 간단하게 구하기 (0) | 2014.03.04 |
JAVA로 영문 대,소문자+숫자 난수 발생시키기 (0) | 2014.02.28 |
[readLine] File 내용을 String 으로 읽어오기 (0) | 2014.02.28 |
SimpleDateFormat 보단 FastDateFormat을 이용하자. (0) | 2014.02.28 |
Xpath 테스트 (0) | 2014.02.19 |
자바 소켓(java socket) InputStreamReader를 사용한 기초적 사용 (0) | 2014.02.19 |