Day22 - Date, Calendar, Random, StringTokenizer

2021. 3. 17. 12:10JAVA 공부

오늘은 비대면 수업을 하는 날이네요 ~

학원을 안가다 보니까, 마음이 물러지고.... 늦잠을 자게 됩니다 ㅎㅎㅎ

 

이번에는 Date 클래스에 대해서 알아봅시다

 

Date

Date 도 java.util 패키지에 들어 있습니다.

Date는 날짜를 표현하는 클래스로 ... 컴퓨터의 현재 날짜를 가져옵니다.

Date 클래스를 만들 때, Date 라는 이름의 클래스는 sql, util 2개가 있는데, util에 있는 걸 사용하셔야 합니다

 

그런데 그냥 Date 클래스만 사용해서 날짜 및 시간을 가져올 경우 ... 출력이 이렇게 되기 때문에, 저희는 이 형태를 조금 바꿔 줄 겁니다

SimpleDateFormat 을 이용해서 말이죠

이렇게 SimpleDateFormat 을 사용해서 , 형식을 지정해 주시고

yyyy -> 년도

MM -> 월

dd -> 일

hh -> 12시 기준 시 , HH -> 24시 기준 시

mm -> 분

ss -> 초

대 소문자를 잘 구분 해주셔야 합니다

그 후 format 을 이용해서 사용해주면 됩니다. ( String문자열 반환 )

이런 식으로 사용 하시면 되겠습니다 ~

 

Date 클래스와 비슷하게 날짜에 대해서 가져오는 Calendar 클래스를 알아 봅시다

Calendar

역시나 Calendar 클래스도 java.util 패키지에 있습니다

Calendar 클래스는 일반적인 객체 생성이 안되는데, 그 이유는 싱글톤 패턴으로 만들어져 있기 때문입니다.

생성자는 private 로 가려져 있고, 객체를 1개만 생성하기 위해서 이죠

사용 방법은 좀 특이합니다.

get 메서드를 통해서 값을 가져오는데 .... 매개변수로 가져오고 싶은 걸 Calendar에 있는 상수를 통해서 가져와야 합니다.

이런 식으로 말이죠 . 거기에 각각 1개 씩 가져오는 것이기 때문에 (년 월 일) 많은 날짜를 가져오려면 여러번 써주어야 합니다

그리고 MONTH 는 항상 1달 늦게 나오는데, 다른 언어에서도 다 똑같이 1달 씩 늦게 나온다고 합니다.

그 이유는 언어가 생성된 날짜에 관련이 있다고 합니다

이제, Random 클래스에 대해서 알아 봅시다

Random

Random 클래스도 java.util 패키지에 있습니다

Random 클래스는 다양한 난수를 얻기 위해서 사용 합니다. Math.random() 이랑 비슷해요 ~

먼저, 객체를 만들어 주세요 !

 

- nextDouble() -> 0 ~ 1 미만의 랜덤값을 반환한다

- nextInt() -> int 형 정수 데이터 범위 랜덤 값을 반환한다

- nextInt(int bound) -> 0 부터 dound 미만까지의 랜덤 값을 반환한다

(int)(Math.random() * bound) 이랑 굉장히 비슷합니다.

 

이제 StringTokenizer 에 대해 알아 봅시다

StringTokenizer

StringTokenizer 도 역시나 java.util 패키지에 들어 있습니다.

StringTokenize 는 String 클래스에서 배웠던 split 랑 비슷합니다 ~

특정 문자열 로 잘라주는 겁니다

StringTokenizer 생성자를 호출 할 때, String 만 넣어주면 공백을 기준으로 자릅니다.

 

- countTokens() -> token 이 몇개로 잘려 있는지 반환 해준다

여기서 잘린 token 은 배열이 아닙니다.

 

- nextToken() -> 다음 token으로 이동하고 String을 반환 해준다

여기서 반복자 라는 개념이 나오는데 ... 나중에 다시 알려주신다고 합니다.

다만, 배열은 아니고, 앞으로만 갈 수 있고 뒤로 돌아올 수 없다고 해요

그리고 토큰의 개수보다 많게 사용하게 되면 !? 에러가 뜹니다

- hasMoreTokens() -> 다음 토큰이 있는지 검사 합니다. 있다면 true , 없다면 false

반환 값이 true / false 이기 때문에, 이렇게 반복문의 조건에 넣을 수 있습니다.

token 의 다음 token이 있다면 반복을 하다가 없으면 false로 반복문을 종료하게 되죠

 

StringTokenizer의 생성자를 호출할 때, 두번째로 기준문자열(기호) 를 매개변수로 넣어줄 수 있습니다.

그러면 기준문자열(기호)를 기준으로 자르게 됩니다 ~

기준문자열(기호) 은 여러개 넣어서 자를 수도 있습니다.

쉼표(,) 마침표(.) 슬래시(/) 공백( ) 전부를 기준으로 잘라버렸습니다

 

StringTokenizer의 생성자를 호출할 때, 세번째로 boolean 형태의 값을 매개변수로 넣어줄 수 있습니다.

2번째로 넣어준 기준문자열 을 포함할 것인지 말것인지 를 넣어줍니다.

구분자가 되는 쉼표(,) 도 포함되어서 출력이 된걸 확인 할 수 있습니다.

 

오늘은 이렇게 Date, Calendar, Random, StringTokenizer 클래스 들에 대해서 알아 보았습니다.

 

고생하셨습니다

'JAVA 공부' 카테고리의 다른 글

Day22 - Collection Framework , ArrayList  (0) 2021.03.17
Day22 - 제네릭 ( Generic )  (0) 2021.03.17
Day21 - Math , Wrapper, Arrays  (0) 2021.03.16
Day21 - StringBuffer  (0) 2021.03.16
Day21 - 외부라이브러리 추가  (0) 2021.03.16