※ chapter 12. 콘솔 입력과 출력
※ 본 문서는 윤성우의 열혈 JAVA를 정리한 글입니다.
※ 문제가 될시 바로 비공개 처리하겠습니다.
§ 콘솔 출력
콘솔은 컴퓨터를 대상으로 데이터를 입력 및 출력하는 장치를 총칭하는 말이다.
모니터와 컴퓨터도 콘솔 입출력 장치에 해당된다.
■ System.out.println & print
자바의 대표적인 콘솔 출력 메소드는 System.out.println()이다.
System.out.print는 개행만 이루어지지 않는 것이지 같은 메소드이다.
이제 이 두 메소드의 특징을 알아보자.
위의 예제에서 정의한 Box 클래스, StringBuilder 클래스에는 다음의 공통점이 있다.
"문자열을 반환하는 public String to String() 메소드가 정의되어 있다."
따라서 문자열 출력을 위해 다음과 같이 작성하였다.
System.out.println(stb.toString());
System.out.println(box.toString());
그러나 .toString()값을 제외해도 동일한 결과값이 나타난 것을 볼 수 있다.
이를 통해 이러한 사실을 알 수 있다
"System.out.println은 참조 값이 전달되면, 이 값의 인스턴스를 대상으로 toString 메소드를 호출한다.
그리고 이때 반환되는 문자열을 출력한다."
■ 문자열을 조합해서 출력하는 System.out.printf 메소드
이 메소드의 사용 방법은 다음과 같다.
System.out.printf("정수는 %d, 실수는 %f, 문자는 %c", 12, 24.5 , 'A');
정수는 %d , 실수는 %f, 문자는 %c로 출력하는 것을 알 수 있다.
(이는 사실 C언어에서 배우고 온 사람이라면 알 수 있다. 지금 정리하고 있는 나도
예전에 C언어를 공부한 적이 있어서 이 사실은 알고 있었다.)
%d와 같은 것을 가리켜 '서식 지정자'라고 한다.
서식 지정자들을 정리하면 다음과 같다.
%d - 10진수 정수 형태의 출력
%o - 8진수 정수 형태의 출력
%x - 16진수 정수 형태의 출력
%f - 실수의 출력
%e - e 표기법 기반의 실수 출력
%g - 출력의 대상에 따라서 %e 또는 %f 형태의 출력
%s - 문자열 출력
%c - 문자 출력
§ 콘솔 입력
■ Scanner 클래스
이 클래스가 속한 패키지는 java.util이다. 생성자중 일부는 다음과 같다.
Scanner(File source)
Scanner(String source)
Scanner(InputStream source)
Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다.
Scanner 인스턴스는 파일이나 String인스턴스 등 다양한 대상으로부터의 추출이 가능하다.
위 예제의 Scanner sc = new Scanner(source);
Scanner 인스턴스와 인자로 전달된 source와의 연결로 이어진다.
■ Scanner 클래스의 키보드 적용
앞서 보인 예제를 수정하여 Scanner 인스턴스를 키보드와 연결하자.
Scanner sc = new Scanner(source); 이문장이 다음 문장으로 바뀐다.
Scanner sc = new Scanner(System.in);
예제를 보면서 확인하자
실행 과정에서 nextInt 메소드가 호출되면 키보드로부터 데이터가 입력될 때까지
프로그램의 실행이 대기 상태에 놓인다.
정수를 입력한 다음에 엔터를 눌러서 키보드 입력을 하면 정수를 읽어 들이고 실행을 이어나간다.
■ Scanner 클래스의 주요 메소드들
다양한 데이터를 추출할 수 있도록 메소드가 정의되어 있다.
일부를 보자
int nextInt() / byte nextByte() / String nextLint() / double nextDouble() / boolean nextBoolean()
마지막으로 예제를 확인하고 넘어가도록 하자.
끝으로, nextByte nextInt는 둘 다 정수의 입력을 위한 메소드이다. 반환형에 차이만 있을 뿐이다.
'JAVA' 카테고리의 다른 글
자바 기초부터 차근차근...(14) (0) | 2020.04.28 |
---|---|
자바 기초부터 차근차근...(13) (0) | 2020.04.28 |
자바 기초부터 차근차근...(11) (0) | 2020.04.25 |
자바 기초부터 차근차근...(10) (0) | 2020.04.24 |
자바 기초부터 차근차근...(9) (0) | 2020.04.23 |