카테고리 없음

Scanner메소드 nextInt(), nextLine(), next() 및 BufferedReader read(), readLine()

열하나요 2023. 12. 30. 18:50

먼차이

Scanner메소드

nextInt() : 공백 전까지 숫자 추출, 반환형이 int 나머지는 String

nextLine() : 개행 전까지 문자열 추출(공백포함)

next() : 공백 전까지 문자열 추출

 

그래서 123 abc를 뽑을 때

nextInt()하면 123 추출 후

nextLine()하면 " abc" 추출(공백도같이 개행전까지)

만약 123입력 시에

nextInt()하면 123 추출 후 

nextLine()하면 빈 문자열 추출

 

nextInt()있는데 문자열 쓰면 에러(InputMismatchException)

 

또,

123 abc를 뽑을 때

nextInt()하면 123 추출 후

nextLine()하면 "abc" 추출(공백 없이 공백전까지)

 

만약

123

abc 이렇게 입력하려고 하면

nextInt()로 123 뽑고

nextLine()으로 개행 하나 죽여주고 (=> 빈문자열만 가져가는 String하나 뽑아주기)

다시 nextLine()으로 "abc"뽑아주면 됨

 

 

 

 

 

BufferedReader

read() : 반환형이 int형 근데 웃긴게 출력할 때는 아스키코드로 변환해서 출력함

그래서 1이 49로 출력되고, a도 출력이 됨=> 97로 출력됨ㅋㅋ

한 행이나 단어로 읽히는 게 아니라 한 문자씩만 읽음(문자) -> 이럴건데 왜 버퍼를 쓰는 거임?

 

readLine() : 반환형이 String, 말 그대로 한 줄을 다 읽음(개행 전까지)

 

BufferedReader는 문자열을 읽음(얘는 보조스트림이라서 주스트림이 매개변수로 꼭 있어야 함)

InputStreamReader : 문자 단위로 읽음(2byte씩)

InputStream : 바이트 단위로 문자를 읽음(1byte씩)