250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 오블완
- 접근 제어자
- Access Modifier
- 혼공자바
- 네트워크
- 혼공컴운
- 인프런
- 인터페이스
- Functional Interfaces
- entrySet
- Proxy Object
- java
- Wildcard
- 스프링 부트 3
- 나도코딩
- types
- Interface
- cluster index
- literal
- dotnet
- 0 시작
- HashMap
- 혼공
- Lazy loading
- 혼공학습단
- 티스토리챌린지
- 자율학습
- 접근제어자
- Spring Data JPA
- noncluster index
Archives
- Today
- Total
지금을 사는 사람
[Java] nextLine()과 next()의 차이와 주의사항 본문
728x90
Java에서 nextLine()
과 next()
는 Scanner
클래스를 사용하여 입력을 받을 때 사용되는 메서드로, 두 메서드 간에는 몇 가지 중요한 차이가 있습니다.
nextLine()
메서드:- 한 줄 전체를 입력으로 받아들입니다.
- Enter 키를 누를 때까지의 모든 문자열을 읽어들입니다.
- 개행 문자 (
\n
)를 포함하여 입력을 반환하므로, 엔터 키를 입력으로 처리하고자 할 때 유용합니다.
Scanner scanner = new Scanner(System.in); System.out.print("이름을 입력하세요: "); String name = scanner.nextLine();
next()
메서드:- 공백 이전까지의 문자열만 읽어들입니다.
- 다만, 입력 버퍼에서 공백 전까지의 문자열을 가져오기 때문에, 다음
nextLine()
을 호출할 때 문제가 발생할 수 있습니다.
Scanner scanner = new Scanner(System.in); System.out.print("단어를 입력하세요: "); String word = scanner.next();
주의사항:
next()
와 nextLine()
을 혼합해서 사용할 때 주의해야 합니다. next()
는 공백 이전까지의 문자열만을 읽기 때문에, 다음 nextLine()
에서 개행 문자를 읽어들일 수 있습니다. 이런 경우를 방지하려면 nextLine()
을 한 번 더 사용하여 개행 문자를 소비하도록 할 수 있습니다.
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt(); // 이 때 개행 문자를 처리하기 위해 nextLine()을 추가로 호출합니다.
scanner.nextLine(); // 개행 문자 소비
System.out.print("직업을 입력하세요: ");
String job = scanner.nextLine();
이렇게 함으로써 nextLine()
이 개행 문자를 읽지 않도록 할 수 있습니다.
728x90
'Java' 카테고리의 다른 글
[Java] 컬렉션 (Collection) (1) | 2023.12.12 |
---|---|
[Java] 리터럴 풀 (literal pool) (0) | 2023.12.12 |
[Java] 람다 표현식(Lambda) (1) | 2023.12.07 |
[Java] 익명 클래스(Anonymous Class) (1) | 2023.12.07 |
[Java] 배열 (0) | 2023.12.06 |