[개발일지]210802 TIL

Gooder·2021년 8월 2일
1

개발일지

목록 보기
5/28
  • 표준 입출력
    System.in
    System.out
    System.err
  • 표준 입출력의 대상변경
    System.setOut()
    System.setErr()
    System.setIn()

입력을 받아오는 방식

Scanner 클래스

경로 : java.util.Scanner
파일, 입력 스트림 등에서 데이터를 읽어서 구분자로 토큰화하고 다양한 타입으로 형변환해 리턴하는 클래스
방식
Scanner(File source)
Scanner(InputStream source)
Scanner(String source)

장점
입력 스트림을 다루는 방법을 몰라도 입력을 처리할 수 있다.
데이터 형변환이 가능해서 편리하다.

단점
대량의 데이터 처리 시에 수행시간이 비효율적이다.

주요 메소드
nextInt()
nextDouble()
next()
nextLine()
White space - \t, ‘ ‘, \n

BufferdReader

  • 필터 스트림
  • 줄(line) 단위로문자열 처리 기능 제공 -> readLine()
  • 대량의 데이터 처리 시 수행시간이 효율적

String으로 받은 입력을 char[]로 바꾸는 법
String str = in.readLine();
char[] ch = str.toCharArray();

StringTokenizer을 이용해서 개수에 맞춰서 nextToken으로 입력 크기만큼 반복

StringBuilder

setLength를 쓰면 반복내용 제외할 때 쓰면 편리
문자열 조작을 지원
자바에서 상수로 취급되는 문자열을 조작 시마다 새로운 문자열이 생성되는 것을 방지해줌
append() 로 추가해서
toString()으로 String으로 만든다.
setLength로 불필요한 부분을 제거한 후 출력할 수 있다.

알고리즘을 풀 때 출력할 때 속도적인 측면에서 StringBuilder와 BufferedWriter를 잘 골라서 써야한다고 생각한다.(주어진 상황에 따라서 다르다. 출력 속도 정리를 보면 언제 뭘 써야할지 느낄 수 있다.)

재귀

FLAT하게 생각하기
단계별로 생각하면서 현재 단계에서 처리안하는 것들은 덩어리로 생각하기.

profile
세상을 변화시킬 신스틸러 서비스를 만들고싶은 개발자 Gooder 입니다.

0개의 댓글