Deeb
디비의 DB
Deeb
전체 방문자
오늘
어제
  • 분류 전체보기 (243)
    • Frontend (63)
      • HTML & CSS (27)
      • JavaScript (17)
      • jQuery (8)
      • React (6)
    • Backend (98)
      • Java (19)
      • JDBC (2)
      • Servlet & JSP (13)
      • Spring (17)
      • Project (0)
      • 개발 공부 (11)
      • 문제 풀이 (8)
      • Algorithm (1)
      • DataBase (0)
      • Oracle (18)
      • Error (8)
    • Knou (1)
    • Review (14)
    • TIL (33)
    • 삽질기록 (8)
    • deebtionary (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • js
  • 서평단
  • 책
  • 2학기
  • 리액트
  • Java
  • GIT
  • 정처기
  • 함수
  • 에러
  • 방송대
  • For
  • HTML
  • 다형성
  • 방통대
  • alter
  • 공부
  • css
  • 정의
  • 기초
  • DBMS
  • DB
  • 후기
  • 추천
  • 한빛미디어
  • 클래스
  • 배열
  • 삭제
  • CLASS
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Deeb

디비의 DB

Backend/Java

[Java] Scanner 주의사항/ .next()와 .nextline() 차이

2021. 9. 16. 12:54

✍Scanner 사용 시 문제점

키보드 입력 시 입력 버퍼라는 곳에 임시 저장된 후
저장된 내용 중 다음 정수, 실수, 단어, 문자열을 읽어온다. 

ex) nextInt(), nextDouble() 등

예제

System.out.print("숫자 입력 : ");
	int addsize = sc.nextInt();
	sc.nextLine();​

 

🔎문제점 : next() 또는 nextInt() 사용 후 입력 버퍼 제일 앞에 \n이 남아있다.
그래서 다음 next() 또는 nextInt()를 쓰면 제일 앞에 남아있는 \n(빈칸)을 읽어오는 상황이 발생한다.

🔎해결법 : next() 또는 nextInt() 구문 뒤에 nextLine()을 한 번 작성하여 \n(빈칸)을 읽어오게 해 입력 버퍼에 남은 \n을 제거한다.


예제 해결법

1) 

nextInt() : 입력 버퍼에서 다음 정수를 얻어온다. (띄어쓰기 또는 개행문자 전 까지)
-> nextInt() == 123

 

이렇게 작성된 코드에 123\n(입력을 위한 엔터)을 입력하게되면

입력 버퍼에서 1 2 3 \n
➡ nextline은 \n까지 읽어온다


2)

nextInt() 이후 nextline() : 입력 버퍼에서 다음 문자열을 읽어온다. (다음으로 만나는 첫 개행 문자까지(개행 문자 포함))
 -> nextLine() 으로 남아있는 개행문자가 다음으로 입력으로 넘어가지 않게 제거해준다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Backend > Java' 카테고리의 다른 글

[Java] Collection_Set  (0) 2021.10.06
[Java] Collection_ List  (0) 2021.10.06
[Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩  (0) 2021.09.11
[Java] Inheritance(상속)  (0) 2021.09.09
[Java] OOP 4_Method(메소드), 객체 배열  (0) 2021.09.08
    'Backend/Java' 카테고리의 다른 글
    • [Java] Collection_Set
    • [Java] Collection_ List
    • [Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩
    • [Java] Inheritance(상속)
    Deeb
    Deeb

    티스토리툴바