본문 바로가기
알고리즘/[백준] JAVA

[JAVA] Hello World!

by 코딩맛집 2023. 3. 1.

백준에서 문제 풀 때, class명이 Main이여야 한다.

 

첫 번째 방법

public class Main {
    public static void main(String[] args){
        String greeting = "Hello World!";
        System.out.println(greeting);
    }
}

 

 

두 번째 방법

import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
    	BufferedWriter greet = new BufferedWriter(new OutputStreamWriter(System.out))
        greet.write("Hello World!");
        greet.flush();
        greet.close();
    }
}

BufferedWriter/BufferedReader는 Buffer에 있는 IO클래스이다.

데이터를 임시 공간(버퍼)에 저장해 두었다가 한 번에 출력 또는 내보내는 방식이다. Scanner는 BufferReader보다 느리다.

 


String은 내부 문자열을 수정할 수 없음.

+ 또는 replace() 메소드를 쓰면 새로운 문자열을 리턴한다. 따라서 String을 빈번하게 연산하는 방식은 비효율적이다.

 

StringBuffer와 StringBuilder는 내부 버퍼(buffer : 데이터를 임시로 저장하는 메모리)에 문자열을 저장.

버퍼 내부에서 추가, 수정, 삭제 작업을 할 수 있도록 설계되어 있다.

 


 

세 번째 방법

public class Main {
    public static void main(String[] args){
    	StringBuilder greet = new StringBuilder();
        greet.append("Hello World!");
    
        System.out.println(greet);
    }
}

StringBuilder도 데이터를 저장해 두었다가 한 번에 출력한다. 

 

StringBuilder의 장점

문자열을 조작할 때 매우 유용하다.

 

StringBuilder의 특징

문자열을 이어 붙인다.

 

메소드 설명      
append() 문자열 끝에, 주어진 매개값 추가
insert(int offset, ..) 문자열 중간에, 주어진 매개값 추가
delete(int start, int end) 문자열 일부분 삭제
deleteCharAt(int index) 문자열에서 주어진 index의 문자 삭제
replace(int Start, int End, String str) 문자열의 일부분을 다른 문자열로 대치
reverse() 문자열의 순서를 반대로 변경
setCharAt(int index, char ch) 문자열에서 주어진 index의 문자를 다른 문자로 대치

 

네 번째 방법

public class Main {
    public static void main(String[] args){
    	StringBuffer greet = new StringBuffer();
        greet.append("Hello World!");
    
        System.out.println(greet);
    }
}

StringBuffer의 장점

문자열을 조작할 때 매우 유용하다.

 

StringBuffer의 특징

동기화를 지원하기 때문에, 멀티스레드 환경에서 안전하다.
(multi-thread 상황에서 문자열이 리소스로 사용된다면 StringBuffer를 사용해주어야 한다.

동기화를 지원해 주어 StringBuilder보단 느리지만, 문자열 조작에 있어서 String보다 빠르다.)

'알고리즘 > [백준] JAVA' 카테고리의 다른 글

[백준] 10818 최소, 최대  (0) 2023.04.25
[백준] 10807 개수 세기  (0) 2023.04.25
[백준] 25304 영수증  (0) 2023.04.24
[백준] 10950 A+B - 3  (0) 2023.04.21
[백준] 2739 구구단  (0) 2023.04.21