https://teresa88.tistory.com/42
https://teresa88.tistory.com/41
https://teresa88.tistory.com/40
https://teresa88.tistory.com/39
오늘 위의 4가지 문제를 풀면서 정리가 필요하다고 생각한 함수들을 정리하려 한다.
1. BufferReader
- Buffer를 사용한 읽기 함수이다.
- Buffer는 Scanner와는 달리 입력받은 값을 저장했다가 buffer가 가득 차거나 개행문자가 나타나면 그 내용을 한번에 전송해 준다.
- 전송해야 하는 양이 많아지면 Scanner를 쓰는 것보다 훨씬 빨라진다.
- 기본 타입은 String이며 int를 사용해야 할 경우는 형변환을 해주어야 한다.
- 엔터만 경계로 인식한다. 따라서 띄어쓰기가 있는 경우는 데이터 가공을 해주어야 한다. → StringTokenizer
- import java.io.BufferedReader로 import 해야지 쓸 수 있다.
소수 구하기 문제에서 썼던 코드 중 일부분이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
StringBuilder sb = new StringBuilder();
참고한 사이트
https://terianp.tistory.com/19
https://rlakuku-program.tistory.com/33
2. InputStreamReader
- 입 / 출력 방법 중 하나이다.
- InputStream은 컴퓨터와 키보드를 연결하여 입력받는 역할 / OutputStream은 모니터로 출력하는 역할
- InputStream은 1개의 값을 받아 올 수 있지만 InputStreamReader를 사용하면 2개 이상의 값을 받아 올 수 있다.
- 2개 이상의 값을 받아 올때는 배열로 받아와야 한다.
- 고정적인 값을 받아 온다.
- char배열 형태로 읽을 수 있다.
- 문자열 출력이 가능하다.
- Byte단위로 읽는 InputStream을 통해 입력 받고 문자 단위로 변환시키는 중개자 역할
- InputStream의 단점을 보완했다.
참고한 사이트
https://silverji.tistory.com/36
https://terianp.tistory.com/19
https://whitepro.tistory.com/591
3. StringBuilder
- String 문자열은 변경 불가능 / StringBuilder는 변경 가능한 문자열을 만들어 준다.
- 문자열의 추가, 삭제, 수정이 빈번할 경우 사용해야 한다.
- 문자열 연결 시 사용된다.
- append()로 연결할 문자열을 넣어 객체를 호출한다.
- 출력시와 변수에 집어 넣을때 toString()을 붙여야한다.
소수구하기 문제 코드 일부분
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
StringBuilder sb = new StringBuilder();
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
for(int i = a; i <= b; i++){
if(arr[i] != 0){
sb.append(i + "\n");
}
}
System.out.println(sb);
}
}
참고한 사이트
https://onlyfor-me-blog.tistory.com/317
https://rlakuku-program.tistory.com/33
'스터디일지 > JAVA' 카테고리의 다른 글
[2023.07.29] StringTokenizer의 메소드 / Math 함수 / Greedy Algorithm (탐욕 알고리즘) (0) | 2023.07.29 |
---|---|
[2023.07.28] 요세푸스 순열 / PriorityQueue / Heap (0) | 2023.07.28 |
[2023.07.27] BufferedWriter / Character Class (0) | 2023.07.27 |
[2023.07.26] StringTokenizer / Queue & Deque / Stack (0) | 2023.07.26 |
[자바] 1011번 Fly me to the Alpha Centauri (0) | 2023.07.25 |