Posts :coffee: [Java] 입력과 출력
Post
Cancel

:coffee: [Java] 입력과 출력

콘솔로 출력하기

printf()

1
System.out.printf("%s, %d", "안녕!", 1);
  • 형식을 지정하지 않으면 print()와 같다.

    • System.out.printf("Hello!\n");
  • 형식

    • %s: 지정한 자리에 문자열을 삽입한다.
    • %d: 정수값을 10진수 문자열로 만들어 삽입한다.
    • %x: 정수값을 16진수 문자열로 만들어 삽입한다.
    • %c: 정수값을 문자로 만들어 삽입한다.
    • %b: true/false 값을 문자열로 만들어 삽입한다.
  • 한 개의 값을 여러 곳에 삽입할 수 있다.

    • %[n$]s: n은 문자열에 삽입될 값의 순서이다. 순서는 1부터 증가한다.
    1
    2
    
    System.out.printf("%2$d, %2$d, %3$d", 65, 66, 67);
    // 66, 66, 67
    
  • 값을 삽입할 때 사용할 공간을 지정할 수 있다.

    • 문자열 삽입
      • %[-][사용할공간너비]s: -은 왼쪽 정렬이고 안 붙이면 기본 오른쪽 정렬이다.
    • 정수 삽입
      • %[0][사용할공간너비]d: 앞의 빈 자리는 0으로 채운다.
      • %[+][0][사용할공간너비]d: +는 숫자 앞에 부호를 붙인다.

형식을 갖춰 날짜 값 출력하기

java.lang 패키지의 멤버를 사용할 때는 그냥 이름을 지정하면 된다.

그 외의 다른 패키지의 멤버를 사용할 때는 반드시 패키지 이름을 함께 지정해야 한다.

java.util 패키지의 Date 클래스를 이용하여 날짜 값을 출력할 수 있다. %t[날짜 및 시각 옵션]으로 사용할 수 있다.

  • 년: Y(4자리 숫자), y(2자리 숫자)
  • 월: B(전체 이름), b(단축 이름), m(2자리 숫자)
  • 일: d(2자리 숫자), e(1자리 숫자)
  • 요일: A(전체 이름), a(단축 이름)
  • 시: H(24시), h(12시)
  • 분: m(분)
  • 초: S(초), L(밀리초), N(나노초)
  • 오전/오후: Tp(대문자), tp(소문자)
1
2
3
4
java.util.Date today = new java.util.Date();
System.out.printf("%1$tY-%1$tm-%1td %1$tH:%1$tM:%1$tS\n", today);

//예) 2020-08-05 12:04:30

키보드 입력 받기

  1. 키보드로 입력한 데이터를 읽을 때 사용할 도구 준비

    • java.io.InputStream keyboard = System.in
  2. 키보드를 스캐너에 연결한다

    • inputStream은 바이트 단위로 읽는 기능이 있다. 자바에서는 바이트를 개발자가 원하는 값으로 바꿔주는 기능을 제공한다. 이 기능을 가지고 있는 도구가 java.util.Scanner이다.

    • java.util.Scanner keyScan = new java.util.Scanner(keyboard)

  3. 스캐너 도구를 사용하여 문자열/int 등 개발자가 원하는 값으로 바꾼다.

    • String str = keyScan.nextLine()
  4. 스캐너는 사용 후 키보드와의 연결을 끊고 닫는다.

    • keyScan.close()

System.out: 표준 출력 장치. 즉 콘솔(모니터, 명령창)을 가리킨다.

System.in: 표준 입력 장치. 즉 키보드를 가리킨다.

문자열 읽기

  • 문자열 한 줄 읽기: nextLine()
  • 토큰 단위로 문자열 읽기: next()

토큰(token): 공백으로 구분되는 단어

공백(whitespace): 스페이스, 탭, 줄바꿈 코드

This post is licensed under CC BY 4.0 by the author.

학원 #17일차: 예외와 에러, outOfMemory, Program argument, JVM argument

💻 01. HTTP 개요

Loading comments from Disqus ...