import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
}
}
✔️ hasNextLine()
Scanner 클래스 메서드 중 하나로, 입력 스트림으로부터 더 읽을 줄이 있는지를 확인하는 역할을 한다.
boolean값을 반환하며, true를 반환하면 아직 더 읽을 줄이 있음을 의미하고,
false를 반환하면 더 이상 읽을 줄이 없음을 의미한다.
주로 while루프와 함께 사용하여 입력을 처리할때 유용하게 쓰인다.
입력이 몇줄인지 미리 알 수 없을 때 사용하며, 입력을 더 이상 받지 않을 때까지 반복적으로
입력을 처리하는데 도움을 준다.
import java.util.Scanner;
public class HasNextLineExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println("Read line: " + line);
}
scanner.close();
}
}
위 코드는 사용자로부터 여러 줄의 입력을 받고, 각 줄을 읽어서 Read line: 이라는 접두사를 붙여서 출력한다.
사용자가 입력을 더 이상 주지 않으면 false를 반환해서 루프가 종료된다.
✔️while문 쓰는 이유
while문은 입력이 얼마나 들어올지 미리 알 수 없을 때 유용하게 사용된다.
문제에서 실제로 몇 줄의 입력이 주어질지 알 수 없으므로 while문을 사용해서 입력을 계속 받고,
입력이 더 이상 없을 때까지 처리하는 것이 효과적이다.
for 루프를 사용할 수 있지만, for 루프는 미리 정해진 횟수만큼 반복하는데 적합하다.
✔️nextLine()
Scanner 클래스의 메서드 중 하나로, 입력 스트림에서 한 줄의 문자열을 읽어온다.
줄 바꿈 문자를 만나거나 입력의 끝에 도달하면 그동안 읽어온 문자열을 반환한다.
반환된 문자열에는 줄바꿈 문자('\n')는 포함되지 않는다.
만약 입력이 없는 경우에는 빈 문자열("")을 반환한다.
사용자가 줄 바꿈 문자열을 입력하면 그 이후의 문자열은 다음 nextLine() 호출에서 읽히게 된다.
(만약 next() 메서드를 사용하여 공백으로 구분된 단어를 읽는다면, 사용자가 공백 문자를 입력하면 다음
next() 호출에서 그 이후의 단어가 읽히게 된다.)
'문제' 카테고리의 다른 글
(백준) 2566번 '최댓값' (0) | 2023.08.08 |
---|---|
(백준) 2738번 '행렬 덧셈' (0) | 2023.08.08 |
(백준) 2908번 '상수' (0) | 2023.08.06 |
(백준) 1152번 '단어의 개수' (0) | 2023.08.02 |