일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 네이버웹툰크롤링
- 특정값 추출
- 조건인덱싱
- 프로그래머스 풀이
- 구구단
- 파이썬 야구게임
- range retention
- 타자연습파이썬
- 데이터프레임 정보 조회
- classic retention
- 웹크롤링 예제
- R실습
- 웹크롤링 실습
- 파이썬
- 문자열reverse
- r연습문제
- R
- 웹크롤링
- 파이썬예제
- rolling retention
- 야구게임 코드
- requests 모듈
- R기초
- java
- 피처벡터화
- 함컴타자연습
- 데이터프레임조회
- 문자열함수
- Python
- pandas
- Today
- Total
서비스 기획자의 성장기록
[Java] 04. Scanner 클래스와 next() 메소드 본문
Scanner 클래스
키보드로 입력한 값을 받아 사용하기 위해서 Scanner 클래스를 사용한다.
Scanner은 먼저 클래스 밖에서 import java.util.Scanner로 클래스를 import 하고 사용할 수 있다.
Scanner 객체를 생성해 주고 입력받은 값을 'keyin'이라는 변수에 저장한다.
값을 입력 받을 때는 keyin.nextLine(), keyin.nextDouble(), keyin.nextInt() 메소드를 사용할 수 있다.
- keyin.nextLine(): 문자열을 전달받음
- keyin.nextDouble(): 실수형을 전달받음
- keyin.nextInt(): 정수형을 전달받음
keyin = new Scanner(System.in)을 선언할 때, 키보드 입력에 대해 추상화된 메모리공간이 메모리에 올라가게 되는데
이 때 keyin.close() 작업을 해주지 않으면 아래처럼 'Resource leak' warning 메세지가 뜨게 된다.
main 메서드가 종료되면 키보드 입력에 대한 메모리도 사라지긴 하지만 그냥 '메모리가 낭비되고 있어요!!🚨' 라고 알려주는 것이다.
next() 와 nextLine()의 차이
next()와 nextLine()은 둘 다 문자열을 입력받아 리턴한다.
이 둘의 차이점은 next()는 토큰을 공백(띄어쓰기, 엔터, 탭)을 기준으로 구분하고 nextLint()은 엔터를 기준으로 토큰을 구분한다는 차이점이 있다.
1) next()로 입력받았을 때:
2) nextLine()으로 입력받았을 때:
이 때, next()는 개행문자(엔터)를 무시하고 입력 데이터를 가져오고, nextLine()은 개행문자를 포함하여 데이터를 가져온다.
위의 예에서 'input1' + 엔터 를 입력하게되면 buffer에 'input1\n'으로 데이터가 올라가게 된다.
이때, next() 메소드에 의해 'input1'이 불러와지고, buffer 에는 개행문자인 '\n'만 남는다.
그리고 남아있는 '\n'을 nextLine()이 가져와서, 콘솔에서는 공백처럼 표기되고 코드가 종료된다.
* Tip!
nextLine()은 buffer에 남아있는 데이터를 모두 불러오기 때문에, buffer을 초기화 하고자 한다면 keyin.nextLine();을 사용한다.
'Java' 카테고리의 다른 글
[Java] 05. 변수 (0) | 2024.01.16 |
---|---|
[Java] 03. 다양한 데이터 타입 출력하기 - Casting & Promotion (0) | 2024.01.15 |
[Java] 02. Java의 자료형 (data type) (0) | 2024.01.15 |
[Java] 01. 객체지향 프로그램 & Java 개요 (1) | 2024.01.15 |