Java

자바 Scanner 클래스

은찡안찡 2022. 9. 22. 17:05

자바 scanner클래스
특징 : 기본적인 데이터 타입들을 scanner의 메소드를 사용할여 입력받을 수 있다.

※입출력 스트림(Stream)
:-컴퓨터 공학에서 스트림은 연속적인 데이터의 흐름 혹은 데이터를 전송하는 소프트웨어 모듈을 말한다. 
-스트림을 통해 흘러가는 데이터의 기본 단위는 바이트(Byte)이다.

-스트림은 단방향이다.


※입력 스트림(Input Stream) :

:입력 장치(마우스, 키보드, 네트워크...)와 프로그램이 연결되어, 입력된 데이터가 프로그램으로 순서대로 흘러간다.
※출력 스트림(Output Stream) :

:프로그램과 출력 장치(모니터, 프린터, 네트워크...)가 연결되어, 출력 데이터가 출력 장치로 순서대로 흘러간다.

 


-자바는 바이트 스트림과 문자 스트림으로 나뉜다. 바이트 스트림은 입출력되는 바이트의 바이너리 값을 있는 그대로 처리하므로 어떤 데이터가 들어와도 처리할 수 있다. 하지만 문자 스트림은 오직 문자만 다룰 수 있다.
-자바의 표준 입출력 : 자바에서는 System 클래스를 이용하여 표준 입력(System.in), 표준 출력(System.out), 표준 에러(System.err)를 제공한다.
 
※Scanner 클래스
->정규식을 사용하여 기본 데이터 타입/문자열을 구문 분석할 수 있는 간단한 텍스트 스캐너.
※정규식(Regular expression, regex) : 특정한 규칙을 가진 문자열의 집합을 표현하는 형식 언어. 다양한 문자열의 검색과 치환을 위하여 지원된다.
->쉽게 말해 Scanner 클래스는 다양한 타입의 입력 값들을 읽어들이기 위한 편리한 방법을 제공하는 클래스이다.
->Scanner 클래스의 생성자에는 다양한 데이터가 들어갈 수 있다

  

출처:https://sskl660.tistory.com/44

 


Scanner사용법


1.  scanner 클래스는 java.util 패지키 안에 있으므로 import를 써서 해당  클래스 경로를 호출한다

Import java.util.Scanner;


 2. 경로를 호출한 후 객체를 생성한다.

Scanner in=new Scanner(System.in)

- 문법 : 클래스이름 객체이름=new 클래스이름(System.in);

- 자바에서 지원하는 가장 기본이 되는 inputStream이다.
- 여기선 scanner라는 클래스를 사용할 것이기 때문에 클래스 이름에는 당연히 scanner를 써야 한다.

- Scanner뿐만 아니라 다른 입력 방식들도 사용자로부터 입력을 받기위해서는 (System.in)을 써야한다.
- 객체이름은 아무렇게나 지어도 상관 없지만 대부분 in, input, sc, scan 을 가장 많이 쓴다.
- 해석하자면 스캐너 라고 하는 클래스를 새롭게(new)객체생성해서 s라고 이름을 붙인것이다.
- (System.in)은 입력한 값을 바이트 단위로 읽는다는것을 뜻이며,

  (System.in)은 사용자로부터 입력을 받기 위한 스트림이다.

 

[예제]

package com.dream.ex01;

import java.util.Scanner;

public class DataObjectMain {
	public static void main(String[] args) {//static Method 
		DataObject dbt=new DataObject();
		//new연산자로 DataObject.java 파일(HDD)의 복제물을 생성해서 메모리 로드한다.
		//메모리에 DataObject"객체"가 저장된다.
		//DataObject"객체"가 저장된 메모리의 특정 위치 주소를 레퍼런스 변수 dbt에 저장한다.
		//레퍼런스 변수로 객체를 찾아간다.
		int result = dbt.num1 + dbt.num2;
		
		System.out.println(result);
		
//스캐너 클래스의 nextint()의 기능을 사용하여 두 정수를 콘솔뷰에서 얻는다.
//두 정수를 피연산자로 하여 +,-,*/를 수행하는 프로그램을 작성하세요.
		
		Scanner scan = new Scanner(System.in);
		System.out.print("정수입력 : ");
		int num1=scan.nextInt();
		System.out.print("정수입력 : ");
		int num2=scan.nextInt();
		System.out.println(num1);
		System.out.println(num2);
		
		result=num1+num2;
		System.out.println("두 정수의 덧셈은"+result+"이다.");
		result=num1-num2;
		System.out.println("두 정수의 뺄셈"+result+"이다.");
		result=num1*num2;
		System.out.println("두 정수의 곱셈은"+result+"이다.");
		double dresult=num1/num2;
		System.out.println("두 정수의 나눗셈"+dresult+"이다.");
	}
}
/*
80
정수입력 : 60 // 임의의 숫자로 60을 집어넣는다
정수입력 : 90 //임의의 숫자로90을 집어넣는다
두 정수의 덧셈은150이다.
두 정수의 뺄셈-30이다.
두 정수의 곱셈은5400이다.
두 정수의 나눗셈0.0이다.
*/

 

 

 

 

'Java' 카테고리의 다른 글

배열  (0) 2022.10.12
반복문(do-while문)  (0) 2022.10.04
반복문(while문)  (0) 2022.10.04
반복문(for문)  (0) 2022.10.04