[Java] next(), nextLine()

h_jin·2025년 1월 17일

코테

목록 보기
14/33

next() vs nextLine()

  1. next()
  • 기능
    공백(스페이스, 탭, 줄바꿈)을 기준으로 단어 하나를 읽습니다.
    공백 이후의 입력은 남아있습니다.
    사용 시점
    단어 단위의 입력을 읽을 때 적합합니다.
  • 특징
    입력이 여러 단어로 이루어진 경우, 첫 번째 단어만 반환합니다.
    입력 버퍼에 남아 있는 공백 또는 줄바꿈은 무시합니다.
Scanner sc = new Scanner(System.in);
System.out.println("Enter input:");
String input = sc.next(); // "Hello World" 입력 시, input에는 "Hello"만 저장됨.
System.out.println(input); // 출력: Hello
  1. nextLine()
  • 기능
    한 줄 전체를 읽습니다.
    줄바꿈(\n)을 기준으로 입력을 읽으며, 공백도 포함합니다.
  • 사용 시점
    여러 단어로 이루어진 한 줄의 입력을 읽을 때 적합합니다.
  • 특징
    줄바꿈 문자를 기준으로 입력을 가져오기 때문에, 이전에 남아있는 줄바꿈 문자도 읽을 수 있습니다.
    입력 버퍼에 남아있는 줄바꿈을 명시적으로 처리해야 할 경우가 있습니다.
Scanner sc = new Scanner(System.in);
System.out.println("Enter input:");
String input = sc.nextLine(); // "Hello World" 입력 시, input에는 "Hello World" 저장됨.
System.out.println(input); // 출력: Hello World

차이점

  1. 처리 범위의 차이
  • next()
    공백(스페이스, 탭, 줄바꿈)으로 구분된 단어 하나만 읽습니다.
    따라서 처리 범위가 작고, 문자열 처리에 소요되는 시간이 적습니다.
  • nextLine()
    줄 전체를 읽으며, 공백이나 탭 등도 포함합니다.
    읽어야 할 데이터의 양이 많아질 가능성이 높습니다.
  1. 버퍼 처리
  • next()
    공백이나 줄바꿈을 기준으로 데이터를 잘라서 반환하기 때문에, 입력 버퍼에 남은 데이터는 이후 메서드에서 처리됩니다.
    버퍼 관리가 간단하고 추가 작업이 적습니다.
  • nextLine()
    줄 전체를 읽으므로, 입력이 길어질수록 버퍼를 처리하는 시간이 더 많이 소요됩니다.
  1. 사용 시 차이점
    next()는 특정 단어만 처리해야 하는 간단한 작업에 적합하며, 입력 크기에 상관없이 빠르게 처리합니다.
    nextLine()는 줄 전체를 처리하므로, 문자열의 길이가 길거나 데이터 양이 많을수록 느려질 수 있습니다.

0개의 댓글