JAVA/변수

06. 변수와 시스템 입출력

햄스타69 2021. 8. 13. 22:38

목차

    System

    System.out은 시스템의 표준 출력 장치를 말한다.

    out은 표준 출력 장치, in은 표준입력장치

    System.out.println("출력내용");

    System.in.read(); 

    위와같은 형식으로 사용한다.

     

    출력하기(.out)

    메소드 의미
    println(내용); 괄호 안의 내용을 출력하고 행을 바꿔라(개행)
    print(내용); 괄호 안의 내용을 출력만 해라
    printf("형식 문자열", 값1, 값2....); 괄호 안 첫번째 문자열 형식대로 내용을 출력하라
    개발자가 원하는 형식화된 문자열 출력가능 
    (ex. 전체 출력 자릿수제한, 소수 자릿수 제한)

    print(내용+\n); == println(내용)

     

    printf 사용방법

    printf("형식 문자열", 값1, 값2....);

     

    형식문자열 안에는 다음과 같은 내용이 들어갈 수 있다.

    % [argument_index$] [flags]   [width]      [.precision] conversion(변환문자)

            값의 순번          -,+   전체자리수   소수자릿수

     

    conversion

    %conversion은 필수로 작성하고 그외는 생략가능 %는 형식 문자열의 시작을 의미

    conversion은 값의 타입에 따라 d(정수), f(실수), s(문자열)을 입력

    값1, 값2는 형식화된 문자열에 제공될 내용을 작성

     

    [argument_index$]

    형식 문자열에 포함될 값이 2개 이상일 경우에는 값의 순번을 알려줘야한다. 

    System.out.printf("%1$s, %2$s, %3$s, %4$s, %5$s", "나는", "오늘도", "자바", "공부를", "한다.\n");
    System.out.printf("%s, %s, %s, %s, %s", "나는", "오늘도", "자바", "공부를", "한다.");

    1$는 첫번째 값 2$는 두번째 값을 의미 생략해도 논리적인 오류는 발생하지 않는다.

     

    flags

    빈 자리를 채우는 방법 생략되면 왼쪽이 공백으로 채워지고, -가오면 오른쪽이 공백으로 채워짐

    0은 공백대신 0으로 채움

     

    자주 사용되는 형식 문자열

    형식화된 문자열 설명 출력형태
    정수 %d
    %6d
    %-6d
    %06d
    정수
    6자리 정수, 왼쪽 빈 자리 공백

    6자리 정수, 오른쪽 빈자리 공백
    6자리 정수, 왼쪽 빈자리 0 채움
    123
    _ _ _123
    123_ _ _
    000123
    실수 %10.2f
    %-10.2f
    %010.2f
    소수점 이상 7자리, 소수점 이해 2자리 , 왼쪽 빈자리 공백
    소수점 이상 7자리, 소수점 이해 2자리 , 오른쪽 빈자리 공백
    소수점 이상 7자리, 소수점 이해 2자리 , 왼쪽 빈자리 0 채움
    _ _ _ _123.45
    123.45_ _ _ _
    0000123.45
    문자열 %s
    %6s
    %-6s
    문자열
    6자리 문자열, 왼쪽 빈 자리 공백
    6자리 문자열, 오른쪽 빈 자리 공백
    abc
    _ _ _ abc
    abc_ _ _
    특수문자 \t
    \n
    %%
    (tab)
    줄 바꿈
    %


    %

    입력하기 (.in)

    키코드

    키코드를 읽기 위해서는 System.in의 read()를 사용

     

    int KeyCode = System.in.read();

    키코드

    * 사용자가 입력한 키의 키코드를 출력해주는 사이트

    https://keycode.info/ 

    코드를 작성하여 테스트해보면 키코드중 13과 10이 함께 입력됨을 알수있을 것이다.

    이는 캐리지리턴(CR:13)과 라인피드(LF:10)로 구성된 2개의 키코드가 함께 입력되는 것이다.

     

    단점: 키코드를 하나씩 읽기 때문에 2개 시아의 키가 조합된 한글은 읽을 수 없다.

           키보드로부터 입력된 내용을 통 문자열로 읽지 못한다.

    Scanner

    키코드의 단점을 보완하기 위해 Scanner클래스를 사용 사용자로부터 입력받은 데이터를 저장

    Scanner sk = new Scanner(System.in);

    String inputData = sk.nexLine();  // Enter키 이전까지 입력된 문자열을 읽음

     

    해당코드를 사용하려면 import java.util.Scanner; 패키지 선언문 바로 밑에 임포트가 되어야 사용가능하다.

     

    sk.nextInt();
    sk.nextDouble();
    sk.nextShort();
    sk.nextLong();
    sk.nextFloat(); 이 존재한다.

    'JAVA > 변수' 카테고리의 다른 글

    07. 연산자  (0) 2021.08.18
    05. 변수의 타입 변환  (0) 2021.08.12
    04. 기본 타입  (0) 2021.08.10
    03. 변수  (0) 2021.08.10