입력
아직도 Scanner로 입력받는 바보없죠?
이는 시간 소모가 크기 때문에 시간이 오래 걸려 불합격하는 경우도 있다고 합니다..
따라서 BufferedReader를 사용해야합니다!
사용방식은 다음과 같습니다.
BufferdReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
BufferedReader는 문자 입력 스트림에서 문자를 효율적으로 읽을 수 있게 해주는 클래스입니다.
InputStreamReader는 바이트 입력 스트림을 문자 입력 스트림으로 변환해주는 역할을 합니다.
System.in은 표준 입력 스트림으로, 보통 키보드 입력을 의미합니다.
readline() 메서드는 입력 스트림으로부터 한 줄을 읽어들입니다. 사용자가 입력한 한 줄의 문자열을 반환합니다.
input이라는 문자열 변수에 사용자가 입력한 문자열이 저장되게 됩니다.
StringTokenizer
import java.util.StringTokenizer;
StringTokenizer st = new StringTokenizer(s);
StringTokenizer는 주어진 문자열을 특정 구분자(delimiter)로 분리하여 토큰(단어)으로 분리하는 데 사용되는 클래스입니다. 구분자가 공백 문자일때 유용하게 사용될 수 있습니다.
다음과 같이 입력값에 공백이 있을 때 StringTokenizer를 사용하면 BufferedReader보다 빠르게 사용될 수 있습니다.
StringTokenizer를 사용했을 때
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
String A = st.nextToken();
String B = st.nextToken();
BufferedReader를 사용했을 때
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
출력
적은 양의 출력에는 System.out.println()이 적합합니다.
많은 양의 데이터 출력을 효율적으로 처리하려면 BufferedWriter를 사용하는 것이 좋습니다.
BufferedWriter
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "안녕안녕";
bw.write(str); //출력
bw.newLine(); //줄바꿈
bw.flush(); //남아있는 데이터 모두 출력
bw.close();
BufferedWriter를 사용할 때 주의할 점은, 버퍼를 메모리에 저장하는 것이기 때문에 작업이 끝난 후 반드시 flush() 또는 close()를 호출해야 합니다. flush()는 버퍼의 내용을 즉시 출력하지만, close()는 스트림을 완전히 닫아버리므로 이후 추가 출력을 원할 경우에는 flush()를 사용해야 합니다.
StringBuilder
문자열을 동적으로 조작한 후 한 번에 출력하려면 StringBuilder를 사용하고, 이후에 System.out.println() 등으로 출력합니다.
StringBuilder sb = new StringBuilder();
sb.append("안녕");
sb.append("안녕").append(" ");
sb.append("나는").append("\n");
sb.append("코끼리야");
System.out.println(sb);
안녕안녕 나는
코끼리야
출력되는 문구는 위와 같습니다.
'코딩 테스트 일지 📒' 카테고리의 다른 글
[코드업/JAVA] 기초 100제 3. 데이터형&출력변환 1028~1037 🐘 (0) | 2024.08.16 |
---|---|
[코드업/JAVA] 기초 100제 2. 입출력 1010~1027 🐘 (0) | 2024.08.16 |
[코드업/JAVA] 기초 100제 1. 출력 1001~1008 🐘 (0) | 2024.08.01 |
🐘코양이의 코테 학습 계획!📆 (0) | 2024.08.01 |
코테 언어 자바로 변경! 다시 처음부터 시작해보자Go😤 (0) | 2024.08.01 |