-
KOSTA 교육 12일차(Calendar, Random, 정규표현식)Review 2020. 6. 21. 17:01
18.11.13(화)
배운 내용
- Calendar
- Random
- 정규표현식
1. Calendar
캘린더는?
날짜와 시간에 관련된 클래스로서, 시스템 시계로 부터 시간을 가져오는 클래스이다.
- GregorianCalendar도 사용되지만 보편적으로는 Calendar가 사용된다.
- new 생성자 대신 getInstance() 메소드를 이용하여 시스템의 날짜와 시간 정보를 표현할 수 있다.
- 주로 상수와 메소드를 활용하여 다양한 기능을 사용한다.
대표적인 예제들을 보면서 Calendar를 활용해보자
- Calender를 getInstance(); 로 객체를 생성한다.
- get이라는 메소드를 사용하여 해당하는 년/월/일/시/분을 반환한다.
- 현재시간을 출력한다.
- 여자친구 혹은 남자친구가 있다는 가정하에 100일 기념일을 구해보자
- add메소드를 통하여 100일 후를 알아낼 수 있다.
- 그대로 출력한다.
- set메소드를 통하여 현재 시간과는 다르게 시간을 설정 할 수 있다.
- 내 생일을 시간으로 둔다고 가정할 때 month에 해당되는 곳이 8이란 것을 볼 수 있다. 내 생일은 9월이지만 월은 0 부터 시작하기 때문에 +1 해주어야 한다.
- 저기서 100일을 더했을 때 SimpleDateFormat을 이용하여 년/월/일/시간/분을 나타낸다.
- getTime()을 통하여 선언하고 실행한다.
- week 배열 안에 요일이 있다. 여기서 내 생일은 향후 10년간 무슨 요일인지 계산하려고 한다.
- for문을 사용하여 i가 10번 반복하게 하고 set메소드를 사용하여 시간을 임의로 설정해준다.
- DAY_OF_WEEK은 요일 (일요일은 1, 토요일은 7)을 말한다.
이 때 배열로 나타내기 위해선 인덱스가 0 부터 시작하기 때문에 -1를 계산해주어야한다. - 나온 값을 출력한다.
다음 예제로 달력을 만들어보자
- 키보드로 해당 월을 입력받게 하고 Calendar를 생성한 후 월을 입력받는다.
- set메소드로 현재년도인 18년을 입력하고 월은 0월부터 시작이기 때문에 -1을 계산해준다
- 여기서 해당년도 월일을 계산해야 달력을 출력할 수 있기 때문에
getActualMaximum을 통하여 선언하고 - get을 통하여 월의 요일을 선언한다.
- 먼저 for문을 사용하여 첫주차에 무슨 요일인지에 따른 공백을 만들어 주어 첫주의 요일 공백을 메운다
- 두번째 for문을 사용하여 월 최대일수를 반복하는데, 이 때 달력의 날짜마다 띄어쓰기가 되어야 하니 공백을 먼저 출력해준 후
- if문을 사용하여 한 주가 토요일에서 끝나면 다음 줄로 넘어가야하기 때문에 토요일 날짜에 나머지가 0이 된다면 줄을 넘어가게 선언하였다.
2. Random
Random은?
난수를 보다 편하게 사용할 수 있도록 한다.
- Random의 객체를 new로 생성한 후 생성된 객체를 nextInt(); 로 사용한다.
- Random을 new로 객체를 생성한다.
- Cards배열 내에 총 9개의 카드가 있는데 이걸 무작위로 섞을 것이다.
- for문을 사용하여 100회 반복을해주는데 nextInt(9)를 해주어 총 9개의 배열값을 선언한다.
- 배열의 난수의 자리를 바꿀 수 있도록 temp 및 배열 2개의 자리를 바꾸는 식을 선언한다.
- 향상된 for문으로 배열을 출력한다.
3. 정규표현식
정규표현식은?
특정한 규칙(패턴)을 가진 문자열의 집합을 표현하는데 사용하는 표현식 언어이다.
- 주로 텍스트를 많이 처리하는 프로그래밍 언어에서 사용한다.
- 특수기호나 문자를 이용하여 일정한 텍스트의 패턴이 있다.
- .은 임의의 글자가 하나 위치해야하고 *은 바로 앞에 문자가 있거나 없으면 선언한다. 결과는 문자열들 사이 abc가 있으면 매칭이 완료된다.
- 숫자만 선언하기 위해선 \d혹은 [0–9]를 사용한다. 또한 3자리만 입력하기 위해선 {3}을 선언한다. 때문에 대괄호 안에 숫자만을 넣고 {3}을 선언하면 숫자 세자리만 표시된다.
- 알파벳과 숫자만 출력하기 위해선 \w 혹은 [a-zA-Z0–9]를 사용한다. 5자리 이상을 입력하기 위해선 {5,}로 쉼표를 선언한다.
- 한글만 표현하기 위해선 [가-힣]을 사용한다. 3~5자리를 입력하기 위해선 {3,5}를 선언한다.
오늘 교육 간 느낀점
오늘은 몸살감기가 들어 교육받는데 많이 애를 먹었다. 하지만 오늘의 내용이 흥미롭고 실생활에 아주 접근성이 뛰어나서 흥미롭게 교육을 들었다. 달력을 직접 만들면서 Calendar를 익히고 새롭게 난수도 구할 수 있다는 것을 알았고, 프로그래밍 언어에 공통적으로 사용된다는 정규표현식을 배우면서 조금씩 컴퓨터 언어에 가까워지고 있다는 생각이 들었다.
물론 어렵게 느껴지긴 하지만 이렇게 흥미를 느끼고 공부하다보면 조금씩 익숙해지고 쉬워지지 않을까 생각한다.
하지만 아직도 조건문을 이용한 계산과 출력은 너무 어렵다고 느낀다.
더 노력해서 조건문을 숨쉬듯 자연스럽게 쓰도록 해야겠다.'Review' 카테고리의 다른 글