ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4. 자바의 입력
    program_language 및 궁금한것/Java 2019. 4. 11. 19:39

     

    오늘의 날씨: 화창함

     

    자바의 입력

    - 프로그램 도중 필요한 시점에 외부에서 데이터를 전달받는 것.

    - 변경되는 데이터를 소스프로그램 변경없이 외부에서 전달하기 위해 사용.

    * 값이 변경되면 재컴파일 되어야 한다.

     

    1. byte단위 입력 (키보드 입력) 1byte - 자바에서 데이터를 구성하는 기본단위

       - 숫자 입력

          int su= System.in.read( ) - 48; <-- 표준입력 즉 키보드 입력 // 읽어주는 기능의 메소드

           -48을 해주는 이유는 나는 0을 입력하지만 프로그램에서는 48을 받기때문이다. 입력값과 출력값은 48차이가 난다.

            (ASCII코드 값) <-- ANSI(미국표준협회)에서 제시한 표준 코드 체계

           -엔터는 라인변경+앞으로 댕겨주는것(키보드모양이 글케 생김)

     

       - 문자 입력

          char ch= (char)System.in.read( ); <-- a,b,c,d 등 문자를 입력받는다.

          - (char)을 입력하는이유: 문자입력시프로그램은 숫자로 값을 받는데, 그걸 아스키코드로 변환한것이다.

     

    ** 캐스팅 casting연산자: 형변환연산자!

        int su = 300;   double d = 3.14;

     

        int su2 = 3.14;  <-- 에러O double이 int보다 크기 때문에

            su2 = (int) 3.14;   <-- double데이터를 int데이터로 형변환하겠음! 소수점 아래 수는 버릴게(결과: 3)

     

        double d2=300; <-- 에러X int<double (자동형변환, 이의 경우를 캐스팅이라 한다.

     

    ** exception은 정상에서 벗어난 예기치못한 예외상황이다. 특정메소드에서 나온다.

      ex) 3층건물에서 친구가 배고파서 빨리 나가려고 창문을 뛰어내리려 한다 .

           비정상적인 상황에서 나는 두가지를 선택할 수 있다. 

           1. throws: 사무실에 긴급상황을 알리고 나의 할일을 한다.

           2. try ~catch: 긴급처치를 하고 119에 신고를 하고 적극적으로 해결을 한다.

    * unreported exception에러 : 문법은 잘했으나 throws Exxeption이나 trycatch문으로 감싸야 한다.

     

     

    for문으로 구구단 만들기 System.in.read() 사용

    System.in.read()는 1자리 수만 입력이 가능하다. import java.io.IOException; import java.util.Scanner; public class GugudanTest { public static void main(String[] args) throws Exception { // System.ou..

    jinsiri.tistory.com

    2. 라인단위 입력

       - 문자열과 10 이상의 숫자를 입력받아 처리할 수 있다.

       - BufferedReader 안에 readLine(리턴값: 입력값)이 정의되어 있다.

     

    * BufferedReader br= new BufferedReader(new InputStreamReader(System.in));

      String str= br.readLine();

      BufferedReader에는 url과 file도 넣을 수 있다.

    풀어서 본다면

      System.in <-- 키보드 장치

      InputStreamReader(System.in) <-- 키보드에서 입력받은것을 byte로 변환한다. ex) 가, ㄴ ㅏ ㄹ, 다      

      new BufferedReader(new InputStreamReader(System.in))

      <-- byte로 변환한 것을 문자열로 저장한다. 엔터전까지 읽어들어서 단어들을 하나의 문자열로 만들어 전달한다.

      <-- 10010101010100101010110 이런것을 가 나 다 라 이런식으로

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); <-- br에 위 기능을 넣는다.

     

    ** " " 따옴표는 코드안에서 문자를 식별하기 위해서만 쓰는 것이다.

    **  a(b(c())): 메소드 호출을 할 때 데이터자리에 메소드가 있다는 것은 호출을 해야 값을 받을수있다.

    ** api문서 중요하다. 링크

    --> 화면은 총 세구간으로 나눠진다. 패키지, 클래스 메소드

     

       - 문자열을 입력 받고싶다?

       - in.readLine(); // a b c d 엔터

       - 숫자입력(위에서 입력된 값에 대해 사칙연산을 하고싶다.)

         Integer.parseInt(str)l // parseInt(); <-- 숫자로 구성된 문자열을 숫자로 변환하는 기능

       Java Stream

       byte가 흐르는 모양 

     

    <자바 I/O의 4대 클래스>

      읽기 쓰기
    byte단위 InputStream OutputStream
    문자단위 Reader Writer

    * import <-- 사용하겠음, 사용하고자 하는 클래스의 소속(폴더, 패키지)을 알려주는 역할

      형식) import 패키지명. 클래스명 ;

             import java.lang.*;  <-- 컴파일러가 자동으로 추가한다.

     

    중요. C:\Program Files\Java\jre1.8.0_201\lib\rt파일을 압축파일로 열면 java- lang엔 String과 같이 자주 사용하는 클          래스들이 들어있다. java-io는 입출력 클래스가 들어있다!

     

    [자바] BufferedReader 사용방법

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class LineInputText { public static void main(String[] args) throws IOException { BufferedReader b..

    jinsiri.tistory.com

    * NumberFormatException 에러 <-- 숫자로 구성된 문자열만 들어가야 한다.

                                              <-- Integer.parseInt(" 숫자가 아닌 문자 ")입력시 나오는 에러.

     

    etc.

    공백(WhiteSpace): 한개 이상의 스페이스(한 칸), 탭(일정간격), 엔터의 조합

    Escape Sequence 확장문자 <-- 인용부호("",'') 내에서만 사용가능

      \n: new line, Line Feed(LF), 줄바꿈

      \r: Carriage Return(CR), 커서의 위치를 맨앞으로 이동 (\n과 \r은 혼합하여 사용하는 경우 많다.)

        ** Enter(엔터): \n\r

      \t: Tab, 일정간격 띄우기

      \\: '\' 문자표현

      \": 큰따옴표

      \': 작은 따옴표

     

    <printf() 메소드>

      JDK5버전 부터 지원!

      f: format(형식)을 의미

      formatString(포멧스트링): %s(문자열) %c(문자) %d(십진수) %f(실수)

      Sytem.out.printf("출력포멧형식", 출력할 바인드 데이터);

     System.out.printf("hello%-5java",345); // 5칸의 자리확보후 좌측 정렬

      

    반응형

    댓글

Designed by Tistory.