Programming Language/Java

[Java] nextInt( )사용 후 nextLine( ) 사용법

Gongdile 2018. 4. 18. 01:23


-Scanner.nextInt 메소드는 

-->가장 마지막 개행문자(엔터,newline)을 제거하지않는다.


개행문자(엔터)전까지만 숫자로 입력받음.


-->이부분에서 문제가 생김 


nextInt( )와 nextLine( )을 사용시 

넥스트인트에 5를 입력하고 엔터친다고 가정하면

넥스트라인 안에 공백이 입력으로 처리되서 문제가 발생함  


nextLine( )은 한줄을 입력받는다. 


이해를 돕기위해 사진을 첨부하겠다.


이렇게 5입력시에 엔터를 치면 공백이 b안에 들어가서 b가 아무것도 찍히지 않게 된다 


어떻게 해결할꺼냐..?



<1. 중간에 scan.nextLine(  ); 삽입하기>




a와 b입력 사이에 scan.nextLine( )을 하나 넣어서 개행(엔터)를 처리해주는 방법으로 하면


잘출력된다.. 


<2.nextLine( )으로 받아서 parseInt로 변경해서 출력하는 방법>



이 글을 읽는 어떤분중에는..

어그러면 그냥 a를 scan.nextLine( )으로 받음 안됨?! 할수도있을거같은데.. NO!! 



 이런 에러가 친절하게 떠요 ㅎㅎ ! 


--> Line은 String에서 쓸수있습니다. 


Scanner 클래스는 자바에서 제공해주는 클래스인데 

화면, 파일, 문자열과 같은 입력소스로부터 문자데이터 읽어오는데 도움줄 목적으로 추가된거에요. 


자세한 설명은 생략하고 Scanner사용시에는 데이터 형식에 맞는 메서드를 사용해줘야합니다.. 

이건 표로 정리하겠습니다.


[표 - 데이터형식과 Scanner메서드]


 

 형식

메소드 
 논리형

boolean (

nextBoolean( ) 

 정수형

byte 

nextByte( ) 

short 

nextShort( ) 

int 

nextInt( ) 

long 

nextLong( ) 

 실수형

double 

nextDouble( ) 

float 

nextFloat( ) 

 문자

String 

next( ) //띄어쓰기로 구분

nextLine(  ) // 한 문장 전체, 엔터키로 구분



맞게 사용하시면 되요.. 


<3. 스캐너를 두개받는 방법>



스캐너를 사용하는 방법이다..


개인적으로는 그냥 중간에 Scan.nextLine( )삽입하는게 제일 편하다고 생각한다.! 


정리하는데 은근 시간을 많이.. 무튼 정리 끝!