👉🏻 4가지 풀이 방법을 이용한다.
System클래스, BufferedReader, StringBuilder, StringBuffer를 이용하여 풀이한다.
👉🏻 자바에서는 몇몇 문자는 단독으로 써서 출력할 수 없다.(대표적으로 백슬래시와 큰 따옴표가 있다.)
그래서 문자를 출력하기 위해 조합을 만들어서 출력할 수 있도록 하는데 이를 Escape Sequance라고 한다.
이스케이프 시퀀스는 백슬래시(\) + 문자의 조합으로 쓰인다.
\또한 단독으로 출력이 불가능한 문자다. 실제로 이클립스에서 코딩하면 아래와 같이 경고가 뜬다.
여기서 백슬래시 + 문자 조합을 사용하여 백슬래시를 두번쓰면 오류 없이 해결된다.
이렇게 하고 컴파일 시 역슬래시 하나만 출력이 가능하다.
👉🏻 방법1. (System 클래스 - 표준 입출력)
public class Main {
public static void main(String[] args) {
System.out.println("\\ /\\");
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
👉🏻 방법2. BufferedWriter
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write("\\ /\\");
bw.newLine(); // 줄 구분자
bw.write(" ) ( ')");
bw.newLine();
bw.write("( / )");
bw.newLine();
bw.write(" \\(__)|");
bw.flush();
bw.close();
}
}
각 라인마다 bw.newLine(); 으로 개행을 해준다. 물론 이를 쓰지 않고 각 write 마다 \n을 붙여줘도 된다.
이후 bw.flush() 로 스트림에 들어있는 데이터를 비운다.
그리고 bw.close()로 스트림을 종료해준다.
👉🏻 방법3 StringBuilder
public class Main {
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|\n");
System.out.println(sb);
}
}
StringBuilder는 개행해주는 메소드가 따로 없기 때문에 각 열 끝에 \n으로 개행해준다.
👉🏻 방법4 StringBuffer
public class Main {
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
sb.append("\\ /\\\n");
sb.append(" ) ( ')\n");
sb.append("( / )\n");
sb.append(" \\(__)|\n");
System.out.println(sb);
}
}
StringBuilder와 동일하다.
👉🏻 정리
가장 중요한 키워드는 이스케이프 문자(제어문자) 이지 않을까 싶다.
Uploaded by Notion2Tistory v1.1.0