scanner

sisun·2023년 4월 4일
0

백엔드

목록 보기
4/12
post-thumbnail

scanner 클래스

자바에서 입력 받을 때 가장 많이 쓰이는것
정수와 실수, 문자열을 읽어올 수 있는 클래스이다.
기본적인 데이터 타입들을 scanner의 메소드를 사용하여 입력받을 수 있다.
2개 이상의 키보드로부터 입력된 내용을 전체적으로 읽기 위해 사용한다.

사용자에게 입력값을 받아 식을 진행할수 있다.
자바에서 입력값을 저장할 곳이 없으니 스캐너를 쓰는것이라고 생각하면 편함

1.import후 사용하여야한다.
import java.util.Scanner;
혹은 인스턴스 후 ctrl + shift + O ★

  1. 인스턴스를 생성한다
    Scanner sc = new Scanner(System.in);
    시스템의 입력 장치로부터 읽는 Scanner을 생성하는 코드
  • 객체의 이름은 Scanner, sc, scan, in, input,등을 많이 사용한다.
    (객체이름은 영단어 무엇이든 될 수 있지만 다른 사람이 알기 쉽게 설정한 것)
    scanner 변수 선언 = 시스템의 읽는 장치로부터 읽는 scanner 생성 (= :생성된 scanner를 변수에 저장)

3.메소드를 호출한다.

  • next() 문자열을 하나만 받는다. 띄어쓰기나 ,로 구분한다. / 여러개써도 하나만 받는다.
    next(0or1or3…) 으로 몇번째 문자열을 받을지 지정할수있다.
  • nextLine() 문자열을 모두 입력받는다
  • nextInt() 정수만 입력받는다
  • nextDouble() 실수만 입력받는다

  1. 사용후 닫는다
    sc.close();
    앞으로 사용하지 않을 때, 사용해서 메모리를 닫아준다.

Scanner 로 char타입 or String 입력받기

scanner선언 했을 시 String 변수이름 = sc.next();
ex) String s = sc.next();

char타입도 마찬가지로 위처럼 선언 한 뒤 .charAt()

ex) String s = sc.next();
System.out.println(s.charAt())

Escape Sequance

큰 따옴표(")나 백슬래시 ()는 단독으로 출력할 수 없기 때문에
문자를 출력하기 위해 조합을 만들어서 출력할 수 있도록 해야한다.
우리가 흔히 쓰는 \n \t \b도 다 이스케이프 시퀸스다.

백슬래시() + 문자의 조합으로 사용 (백슬래시 두번 쓰면 하나만 출력됨)
"\\" → \출력 "\\\\" → \\출력 따옴표도 "\"\ → "" 이런식으로 출력 해줘야 한다
따로 정수나 문자열을 넣을 필요가 없고 그냥 println()안에 넣으면 된다.

BufferedReader 은 String 타입으로 입력되기 때문에 반드시 Integer.parseInt()로 int 형으로 변환시켜준다

BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
 
 		int A = Integer.parseInt(br.readLine());

변수와 시스템 입출력

전엔 System.out.println("출력내용)"; 을 써서 시스템의 표준 출력 장치를 사용 했는데 이젠 in을 써서 표준 입력 장치를 사용한다
String inputData = scanner.nextLine();

TIP! 정수 출력 및 시스템출력

%d 정수로 출력 (10진수)
%s 문자형 출력
%f 실수로 출력 ex) %.2f = 2f를 실수로 변경
%c 문자열 출력
%b boolean 출력
%n,\n 줄바꿈

  • System.out.println():괄호값을 모니터로 출력하고 줄 바꿈
    • System.out.print():괄호값을 모니터로 출력하고 줄 바꿈X
    • System.out.printf():괄호 형식대로 출력함
    • System.in.read():키보드에서 입력된 키코드를 읽음 (2개 이상의 한글을 읽을 수 없다)
    • Scanner: 2개 이상의 키보드로부터 입력된 내용을 전체적으로 읽기 위해 사용

형변환 문제

https://velog.io/@si9138/230331%EC%88%99%EC%A0%9C

profile
풀스택 국비수강중

0개의 댓글