Java 랜덤 문자열 생성 / Random 클래스 / 랜덤 숫자 / 난수
2016. 12. 2. 16:24ㆍlanguage/java
Java 랜덤 문자열 생성 / Random 클래스 / 랜덤 숫자 / 난수
랜덤 문자열을 생성할 경우가 있다.
예를 들면 임시 비밀번호를 생성하거나 특정 난수가 필요한 경우가 있다.
이럴 경우 간단하게 Random 함수를 사용하면 가능하다.
영문자는 int 타입의 숫자를 char 타입으로 캐스팅 하면 아스키코드 문자로 변환된다.
영소문자 a-z 출력하기 (아스키코드 97~122)
1
2 |
Random rnd = new Random();
String randomStr = String.valueOf((char) ((int) (rnd.nextInt(26)) + 97)); |
cs |
영대문자 A-Z 출력하기 (아스키코드 65~122)
1
2 |
Random rnd = new Random();
String randomStr = String.valueOf((char) ((int) (rnd.nextInt(26)) + 65)); |
cs |
숫자 0-9 출력하기
1
2 |
Random rnd = new Random();
String randomStr = String.valueOf(rnd.nextInt(10)); |
cs |
위 방법들을 이용하여 랜덤한 문자열을 생성해보자.
생성할 문자열은 숫자와 영문 대소문자를 섞은 20자 문자열이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
StringBuffer temp = new StringBuffer();
Random rnd = new Random();
for (int i = 0; i < 20; i++) {
int rIndex = rnd.nextInt(3);
switch (rIndex) {
case 0:
// a-z
temp.append((char) ((int) (rnd.nextInt(26)) + 97));
break;
case 1:
// A-Z
temp.append((char) ((int) (rnd.nextInt(26)) + 65));
break;
case 2:
// 0-9
temp.append((rnd.nextInt(10)));
break;
}
} |
cs |
1# : 랜덤한 문자열을 담을 StringBuffer
2# : Random 클래스 생성
3# : 20번 돌수있는 루프
4# : 숫자, 영문소문자, 영문대문자를 구분할 랜덤 숫자 (0,1,2) 생성
5# : 숫자, 영문소문자, 영문대문자를 구분할 switch 문
ps. 특수문자를 사용하고 싶다면 영문자를 생성하듯이 아스키코드를 사용하면 된다.
'language > java' 카테고리의 다른 글
java replace last 구현하기 (0) | 2017.02.08 |
---|---|
Java | Byte 배열과 바이너리 String 문자열 간의 상호 변환 (0) | 2017.01.19 |
Java C Socket 통신, 파일전송 / C : Server / Java : Client (7) | 2017.01.18 |
JAVA 다중 for문 수행횟수에 따른 속도 차이 실험 (0) | 2017.01.04 |
Java를 이용하여 페이지 정보 가져오기(IP, Header, 페이지정보 등) (0) | 2016.12.29 |
Java | queryString 등 문자열 중에서 한글만 찾아 인코딩하기 / 유니코드 활용 (0) | 2016.11.24 |
JAVA Web Crawling (Scraping) / 웹페이지 크롤링 Apache HttpComponents (0) | 2016.11.21 |
JAVA Object 객체가 비어있는지 체크 (0) | 2016.11.11 |
Java 문자열 바이트 체크 / 문자열 길이 체크 / string byte check (1) | 2016.11.11 |
java poi 엑셀 업로드 excel upload 심플한 방법 (2) | 2016.11.11 |