Developer/JAVA

JAVA , Date , Scanner

단님 2024. 7. 21. 23:30
728x90
Date 클래스

 

 Date now = new Date();

 

 

 

import 된 것을 확인 할 수 있다.

import java.util.Date;
       Date now = new Date();
       System.out.println(now);

https://docs.oracle.com/javase/8/docs/api/

 

Java Platform SE 8

 

docs.oracle.com

자바를 이용하면서 필수로 봐둘 사이트.

자바의 라이브러리를 임포트 해서 사용한다

java.lang은 필수적으로 많이 쓰는 클래스들을 모아 놓았기 때문에 따로 import 하지 않고 썼지만.

다른것들은 필요시에 import 하고 써야한다.

 

import 하지 않고 사용하면서 쓸수도 있는데 ,

java.util.Date now = new java.util.Date();

이렇게 쓰게 되면 가독성이 떨어지고 불편한 점들이 생기게 된다.

Date 에 커서두고 import 자동완성을 하기 위해서는 ctrl + shift + O

       System.out.println(now);
       System.out.printf("오늘의 날짜는 %tY년 %tm월 %td일",now ,now , now);

 

printf 를 사용하면 인자를 하나씩 명시해줘야하는데 , 이와같은 방법으로도 사용가능하다.

        // $ 사용하면 매개변수의 갯수를 줄일 수 있음
        // => %2$d : 2번째 매개변수 정수
       System.out.printf("오늘의 날짜는 %1$tY년 %1$tm월 %1$td일",now );
       System.out.printf("오늘의 날짜는 %tY년 %1$tm월 %1$td일",now );

 

 

-날짜 / 요일 / 시간

   //날짜 표시 (tY / tm / td)
   System.out.printf("오늘의 날짜는 %tY년 %1$tm월 %1$td일",now );
   System.out.println();
   //요일 표시(tA)
   System.out.printf("오늘의 날짜는 %tY년 %1$tm월 %1$td일, %1$tA 입니다",now );
   System.out.println();
   //시간 표시 (tH / tM / tS)
   System.out.printf("지금 시간은 %tH시 %1$tM분 %1$tS초",now );
   System.out.println();

 

 

printf 의 자리수의 명시는 양수 또는 음수를 앞에 명시하여 사용할 수 있다.

        // -는 왼쪽 정렬방식
       System.out.printf("**(12345의 자리 정렬 방식) 10d = %1$10d , 20d = %1$20d  -20d =%1$-20d 확인하세요 %n",123456789 );
       System.out.println("양수는 우측정렬의 의미 , 음수는 좌측정렬의 의미");


scanner

scanner 란 console 을 통한 입력을 가능케 하는 클래스.

 

-방법

1. scaaner를 생성, import

Scanner sc = new Scanner(System.in);

 

-import

import java.util.Scanner;

 

 

2. 입력 받기

		System.out.println("이름을 입력하세요");
		
		String name = sc.nextLine(); //nextLine(string) 과 nextInt(int) 를 많이 사용.

 

입력된 값을 문자열로 저장한다.(nextLine)

입력이 완료할 때까지 코드 대기함. (입력완료키는 Enter키)

입력이 완료되면 입력된 값을 return 하여 문자열로 저장한다.

 

3. 출력하기

System.out.println(name);

 

4. 사용종료 명시

		sc.close();

사용을 마침을 명시한다. (자바의 가비지 커랙터가 인식 할 수 있도록.)

 

nextLine과 nextInt의 차이
		System.out.println("나이를 입력하세요");
		int age = sc.nextInt();
		System.out.println("주소를 입력하세요");
		String addr = sc.nextLine();
		
		System.out.println("이름 :"+name);
		System.out.println("나이 :"+age);
		System.out.println("주소 :"+addr);

 

나이를 숫자로 입력하고 엔터를 누르고 나면 주소입력창이 활성화 되지 않고,

바로 아래의 println이 실행되는 것을 알 수 있다.

 

16을 누르고 엔터를 했다고 보면,

nextInt의 특징상 숫자만 가져간다 (return 16)

Enter 키 값이 남아서 아래의 nextLine이 인식하게 된다. 입력 완료로 처리하게 된다. (return ""Enter)

즉 , 종료시점에 나오는 경우 사용하게 된다면 문제가 발생하지 않지만 ,

뒤에 nextLine 등 더 받아야할 입력값이 있다면 사용하지 않는것이 바람직하다.

Line으로 받은 후 형변환을 일으켜 int 자료형에 담을 수 있다.

int age = Integer.parseInt(sc.nextLine());

 

double의 형변환 (String ->double)

		System.out.println("키를 입력하세요");
		double height =Double.parseDouble(sc.nextLine());

 

타입에 맞는 답변이 아니라면 타입 미스매치가 뜬다.