Backend/JAVA

JAVA 코딩 System.in 표준 입력 스트림, Scanner 스캐너

쏠솔랄라 2023. 2. 1. 11:36

 

 

Stream.in

 

: 표쥰 입력 스트림(객체)

.read() : buffer안에서 데이터를 1byte씩 읽어 오는 메소드

 

e.g)

import java.io.IOException;

public class Test01 {

 

public static void main(String[] args) throws IOException {

 

System.out.print("정수 입력 : ");

 

int su = 0;

 

while(true) {

 

int a = System.in.read();

 

if(a == 13) {

break;

}

 

su *= 10;

su += (a-48);

// System.out.println(a);

 

}

 

 

 

buffer(버퍼)

: 데이터의 처리속도, 단위, 시간 등이 서로 다른 두 장치나 프로그램 사이에서

데이터를 주고받기 위한 용도로 사용되는 임시 기억장치(메모리)

 

* 키보드 입력 시 버퍼

키보드에서 입력된 키값들을 버퍼 안에 저장

공백문자를 기준으로 데이터의 끝을 구분

 

System.in을 사용할 시에는 불편하기 때문에

편리하게 사용하기 위해 만들어진 도구를 가져다 사용 -> scanner

 

 

Scanner sc  = new Scanner(System.in);

 

java.util.scanner : 데이터를 읽어 오기 위한 클래스

파일, String(문자열), URL, InputStream

자료형 데이터로 참조형 변수를 만든 것

 

.next() : 다음 공백문자까지의 데이터를 읽어오는 메소드 ; 한 단어 ; String(문자열)으로 읽어오게 되어 있다

.nextLine() : 엔터(\r, \n)를 기준으로 데이터를 읽어오는 메소드 ; 한 줄 ; String

.next자료형() : (공백문자까지) 내가 원하는 데이터 형태로 데이터를 읽어오는 메소드 ; 한 단어 ; next자료형()을 next()의 방식으로 [자료형] 형태로 읽어옴

* 자바에서 메소드명은 첫 글자는 소문자로, 달라지는 단어의 첫글자는 대문자로

 

e.g)

System.out.print("나이 입력 : ");

int age = sc.nextInt();

System.out.println("나이 : " + age);

 

sc.nextLine(); // 공백삭제

 

데이터를 입력한 후에 nextLine을 사용한다면

버퍼의 엔터값을 제거해주어야 공백 입력이 가능해진다

 

System.out.println("이름 입력 : ");

String name = sc.nextLine();

System.out.println("이름 : " + name);

 

 

 


 

 

Exercise 1

 

사용자에게 입력을 받아 출력화면이 아래와 같이 되도록 작성하시오

자바 시험 점수 입력하세요
95
파이썬 시험 점수 입력하세요
80
이름을 입력하세요
홍길동
================================
홍길동님의 성적 합계 = 175점, 평균 = 87.5점

 

import java.lang.*;

import java.util.Scanner;

public class Test01 {

public static void main(String[] args) {

 

Scanner sc = new Scanner(System.in); // 스캐너 활용

 

System.out.println("자바 시험 점수 입력하세요");

int java = sc.nextInt();

 

System.out.println("파이썬 시험 점수 입력하세요");

int python = sc.nextInt();

 

sc.nextLine(); // 공백삭제

 

System.out.println("이름을 입력하세요");

String name = sc.nextLine();

 

System.out.println("======================================");

 

System.out.print(name + "님의 성적");

int sum = java + python; // 호출

 

System.out.print("합계 = " + sum + "점, "); // 호출

System.out.print("평균 = " + sum/2.0 + "점"); // 호출

 

출력화면