JAVA : StringBuilder & Scanner

2021. 1. 8. 23:20·JAVA

 

알고리즘 문제를 풀 때, 시간 초과로 인한 문제가 발생할 수 있다. 

이때, Scanner 대신 StringBuilder를 사용하면 소요 시간을 단축할 수 있다.

 

  • Scanner

    • java.util.Scanner 클래스
    • 읽은 데이터 파싱 가능
    • IOexception 던짐X
    • 버퍼 사이즈 

 

<사용 예시>

import java.util.Scanner;
public class Main {
 
	public static void main(String[] args){
        
	  Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
  
    System.out.println(N);
  }
}

 

  • StringBuilder

    • java.io.BufferedReader 클래스
    • 파싱 불가능 -> 모두 텍스트로 읽음 (string으로 값을 읽음), 별도의 처리 필요함
    • buffer를 이용하여 scanner 비해 속도 빠름 ( 파싱 기능 없이 단순히 읽기 때문)
    • IOexception 던짐O

 

<사용 예시>

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
 
	public static void main(String[] args) throws IOException{
        
	  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());
  
    System.out.println(N);
  }
}

 

 

 

<정리>

 

- Scanner : 키보드가 눌릴 때마다 데이터를 목적지에 이동

- StringBuffer : 버퍼에 값들을 모았다가 모인 데이터를 목적지로 이동

- Scanner가 사용하기는 더 편리하지만, 데이터 양이 많아질 경우 StringBuffer를 사용하는 것이 효율적으로 데이터를 전달할 수 있다.

 

 

★ StringTokenizer

 

- BufferedReader로 받은 data는 line 단위로 되어 있음 

- 공백 단위로 나누고 싶다면 별도의 처리 필요 -> StringTokenizer 사용

- 인자로 BufferedReader로 읽은 문자열 가지고 nextToken()으로 쪼개기

- 별도의 타입이 있을 경우 추가 처리 필요 (ex: Integer.parseInt();)

 

<사용 예시>

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
 
	public static void main(String[] args) throws IOException{
        
	  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String test = br.readLine();
  
    StringTokenizer st = new StringTokenizer(test); //StringTokenizer 인자값에 입력 문자열 넣음
    
    int first = Integer.parseInt(st.nextToken());  //첫번째 값은 int type
    String second = st.nextToken();                //두번째 값은 string 일때

    System.out.println(first);
    System.out.println(second);
  }
}

 

 

 

 

 

 

'JAVA' 카테고리의 다른 글

JAVA : Comparable & Comparator (+ 백준 11650)  (0) 2021.06.22
JAVA : BufferedReader & BufferedWriter  (0) 2021.01.14
JAVA : String 또는 Char의 int 타입 변환  (0) 2021.01.13
JAVA : Scanner로 문자 입력 (Char 타입)  (0) 2021.01.12
JAVA : System.out & StringBuilder  (0) 2021.01.08
'JAVA' 카테고리의 다른 글
  • JAVA : BufferedReader & BufferedWriter
  • JAVA : String 또는 Char의 int 타입 변환
  • JAVA : Scanner로 문자 입력 (Char 타입)
  • JAVA : System.out & StringBuilder
HBean_
HBean_
백엔드 개발자의 개발 로그 💻
  • HBean_
    개발_log
    HBean_
  • 전체
    오늘
    어제
    • 전체 (103)
      • WEB (49)
        • Spring (14)
        • AWS EC2 (6)
        • DB (3)
        • 2020_webCamp (25)
        • JPA (1)
      • Devops (2)
      • 보안 (4)
      • Git (6)
      • JAVA (13)
      • 자료구조 (2)
      • 알고리즘 (11)
      • 네트워크 (2)
      • SStudy (2)
      • 실전프로젝트2 (4)
      • 개발 일기 (1)
      • 개발툴 (4)
      • Intellij (2)
      • 이슈 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GITHUB
  • 공지사항

  • 인기 글

  • 태그

    tomcat
    IntelliJ
    톰캣
    웹
    플러그인
    인텔리제이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
HBean_
JAVA : StringBuilder & Scanner
상단으로

티스토리툴바