220620 TIL

Yeoni·2022년 6월 20일
0

국비교육TIL

목록 보기
14/41

국비교육 14일차 Java : String, Calendar, Instance

1. String

11) "문자열".startsWith("찾고자하는문자열")

  • "문자열"에서 "찾고자하는문자열" 이 맨 처음에 나오면 true를 반환한다.
  • "문자열"에서 "찾고자하는문자열" 이 맨 처음에 없으면 false를 반환한다.
public static void main(String[] args) {
	
	String[] s = {"안녕하세요", "반갑습니다", "만나서 반갑습니다"};
	for(int i=0; i<s.length; i++) {
		if(s[i].startsWith("반갑")) {
		System.out.println(s[i]);
		}
	}
	
} // end of main
// 반갑습니다

12) "문자열".endsWith("찾고자하는문자열")

  • "문자열"에서 "찾고자하는문자열" 로 끝나면 true를 반환한다.
  • "문자열"에서 "찾고자하는문자열" 로 끝나지 않으면 false를 반환한다.
public static void main(String[] args) {
	
	String[] s = {"안녕하세요", "반갑습니다", "만나서 반갑습니다"};
	for(int i=0; i<s.length; i++) {
    	if(s[i].endsWith("습니다")) {						
    		System.out.println(s[i]);
    	}
    }
	
} // end of main
// 반갑습니다
// 만나서 반갑습니다

13) "문자열".trim()

  • "문자열"의 좌우에 공백이 있다면, 공백을 모두 제거하고 반환해준다.

14) "문자열".isEmpty()

  • "문자열"에 아무것도 없으면 true를 반환해주고, "문자열"에 무엇인가 들어가 있으면 false를 반환해준다.

15) "문자열".toUpperCase()

  • 문자열"에서 소문자가 있으면 모두 대문자로 변경해서 반환해준다.

16) "문자열".toLowerCase()

  • "문자열"에서 대문자가 있으면 모두 소문자로 변경해서 반환해준다.

17) "문자열".equals("비교대상문자열")

  • 대문자와 소문자를 구분하면서 "문자열" 과 "비교대상문자열" 의 값이 일치하면 true 를 반환.
  • "문자열" 과 "비교대상문자열" 의 값이 일치하지 않으면 false 를 반환.

18) "문자열".equalsIgnoreCase("비교대상문자열") ===

  • 대문자와 소문자를 구분하지 않으면서 "문자열" 과 "비교대상문자열" 의 값이 대,소문자와 관계없이 일치하면 true 를 반환.
  • "문자열" 과 "비교대상문자열" 의 값이 대,소문자와 관계없이 일치하지 않으면 false 를 반환.

2. StringBuilder와 StringBuffer

1) StringBuilder

  • 단일 스레드(Single thread)에서만 사용되어지기 때문에 주로 웹에서 많이 쓰인다. StirngBuilder가 StringBuffer보다 상대적으로 조금 가볍다.
public static void main(String[] args) {
	
	StringBuilder sb = new StringBuilder();

	sb.append("일");
	sb.append(",이");
	sb.append(",삼");
	sb.append(",사");
	sb.append(",오");

	System.out.println(sb.toString()); 	// StringBuilder를 toString을 이용하여 String 타입으로 변경
	
	sb.setLength(0); // StringBuilde 초기화

} // end of main
// 일,이,삼,사,오

2) StringBuffer

StringBuffer sb = new StringBuffer();

  • 단일 스레드(Single thread) 및 다중 스레드(Multi thread)를 지원해주기 때문에 주로 게임에서 많이 쓰인다. tringBuffer와 StringBuilder는 사용 방법이 똑같다.

3. Date

1) 현재시각 나타내기

public static void main(String[] args) {
	
	Date now = new Date(); 	//현재시각
	
	System.out.println("1. 현재시각 : "+now);
	// 1. 현재시각 : Mon Jun 20 18:49:01 KST 2022
	
	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	
	System.out.println("2. 현재시각 : "+df.format(now)); 	
	// 2. 현재시각 : 2022-06-20 18:49:01
	
	String currentTime = String.format("%tF %tT %tA %tZ", now,now,now,now);	 
    // now에 각 format들이 하나씩 들어감
	// 3. 현재시각 :2022-06-20 18:49:01 월요일 KST
	
	System.out.println("3. 현재시각 :"+currentTime);
	
	/*
       <참고>
         날짜 타입 format         설명
        --------------------------------------------------
         %tF              날짜를 yyyy-mm-dd 형식으로 포맷해주는 것
         %tT              날짜의 시각을 HH:MM:SS 형식으로 포맷해주는 것  
         %tp              오전, 오후를 출력
         %tA              요일명 출력
         %tY              4자리 년도만 출력
         %tB              월의 이름(January, February ...)출력
         %tm              월의 01,02,03 ~~ 10,11,12 로 출력
         %td              일수를 1~31 로 출력
         %te              %td와 동일함
         %tk              시간을 0~23 으로 출력
         %tl              시간을 1~12 으로 출력
         %tM              분을 00~59 으로 출력
         %tS              초를 00~59 으로 출력
         %tZ              타임존을 출력(한국은 KST로 나옴).
      */
	
} // end of main

4. Calendar 클래스

  • 두개 날짜 사이의 날짜 연산이 있을 경우 이용
public static void main(String[] args) {
	
	Calendar currentDate = Calendar.getInstance();
	//현재날짜와 시간을 얻어온다. 
	
	int year = currentDate.get(Calendar.YEAR);
	int month = currentDate.get(Calendar.MONTH); 		// 0~11
	int month_2 = (currentDate.get(Calendar.MONTH)+1);	// 1~12
	
	// 주의해야할 것은 get(Calendar.MONTH)로 얻어오는 값의 범위는 
	// 1~12가 아니고 0~11이기 때문에  
	// 월을 구하기 위해서는 +1을 해주어야 한다. 	
	
	System.out.println(year); 		// 2022
	System.out.println(month); 		// 5
	System.out.println(month_2);	// 6
	System.out.println(currentDate.get(Calendar.WEEK_OF_YEAR));  
    //이번 연도의 몇 째 주: 26
	
	// 어제, 오늘, 내일 날짜 나타내기
	currentDate = Calendar.getInstance();  //현재
    SimpleDateFormat dateft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
    //=== 어제 시각 나타내기 ===
    currentDate.add(Calendar.DATE, -1);
    //현재로부터 일수를 더해주는데 -1을 더해주게 되면 어제가 된다.  	
    //currentDate가 지금은 어제 날짜로 바뀐 상태
    System.out.println("어제시각: "+dateft.format(currentDate.getTime()));		
    // currentDate는 캘린더 -> getTime하면 Date 형식으로 바뀜
    // dateft.format(Date date)이므로 
    // Calendar currentDate를 Date 형식으로 바꾸어 주는 것이
    // currentDate.getTime()이다. 
    // 어제시각: 2022-06-19 19:12:50
    
    //=== 현재 시각 나타내기 ===
    currentDate = Calendar.getInstance();  	
    //currentDate 초기화 시켜줘서 다시 현재 시각으로 나타내 주어야함. 
    System.out.println("현재시각: "+dateft.format(currentDate.getTime()));	 	
    //현재시각: 2022-06-20 19:12:51
    
    //=== 내일 시각 나타내기 ===
    currentDate.add(Calendar.DATE, 1);	 	
    // YEAR, MONTH, DATE 등으로 바꿔서 넣으면 한달 전, 일년 전으로도 바꿀 수 있다. 
    System.out.println("내일시각: "+dateft.format(currentDate.getTime()));	
    //내일시각: 2022-06-21 19:12:51
	
} // end of main

5. 객체지향 프로그래밍(Object Oriented Programming)(OOP)

  • field(= attribute, property, 속성) 와 method(= operation, function, 기능, 행위) 로 구성된 클래스를 통해 객체(= instance, 인스턴스)를 만들고, 데이터처리와 같은 상호작용을 만들어진 객체를 가지고 프로그래밍화 하는것을 OOP 라고 부른다.

  • OOP의 4가지 특징 : 상속성, 추상화(꼭 필요한 것만 가져오는 것), 캡슐화, 다형성

profile
이런 저런 기록들

0개의 댓글