반응형

@notepad_jj2

츄르사려고 코딩하는집사입니다.


자바(Java)에서 문자열 합치기(concat, +, append())

 

자바(Java)에서 String형을 붙이는 방법은 크게 3가지가 있습니다.

특별한 경우가 아닌 이상에는 1번인 + 기호를 사용하여 String형을 합치지만, 알고리즘을 풀 경우에는 StringBuffer를 사용하여 append를 통해 String형을 붙이고 있습니다.

 

아래의 예시에서는 Hello라는 값을 가진 String형 a1과 World라는 값을 가진 String형 a2를 가지고 다룹니다.

 

1. + 기호를 사용한 String형 합치기

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

 

+ 기호는 간단하게 String형 변수에 + 를 넣어 String형 데이터를 합칠 수 있습니다.

 

2. concat()을 사용한 String형 합치기

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

 

concat() 함수는 a1.concat(a2)를 사용하여 String형 데이터를 합칠 수 있습니다.

 

3. StringBuffer를 사용한 String형 합치기

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

 

StringBuffer는 알고리즘에서 많이 사용하는 방법입니다. 일반적으로, 자바(Java)에서 String형은 변수값이 변하지 않습니다. 우리가 String형을 바꿨을 때에는 String 객체에 텍스트를 이어 붙여 만듭니다. 그렇기 때문에, 메모리 낭비를 하기 때문에 알고리즘을 풀 때에는 StringBuffer를 많이 사용합니다. 

 

예를 들어, 아래의 코드를 보면 StringBuffer 같은 경우에는 StringBuffer 객체를 1번만 생성하고, + 연산 기호를 사용할 때마다 a1과 a2의 객체를 새로 만들기 때문에 객체를 2번 생성합니다. 나중에, String형 데이터를 여러 개를 합칠 경우에는 객체를 계속 만들기 때문에 메모리 낭비가 일어날 수 있습니다.

public class Main {
	public static void main(String[] args) {
    	StringBuffer sb = new StringBuffer();
        
        sb.append("Hello");
        sb.append("World");
        
        System.out.println(sb.toString());
        
        String a1 = "Hello";
        String a2 = "World";
        
        System.out.println(a1+a2);
    }
}

 

 

그렇다고 해서, 무조건 메모리 낭비를 방지한다고 StringBuffer를 사용하는 것은 옳지 않습니다. 데이터 추가, 삭제, 수정 등의 횟수가 거의 없는 경우에는 String 객체를 만들어서 사용하는게 좋습니다. StringBuffer 같은 경우에는 String형보다 메모리 사용량도 크고 속도도 느립니다. 그래서, 문자열 수정 사항 횟수가 적으면 String형, 문자열 수정 사항 횟수가 많으면 StringBuffer를 사용하여 상황에 따라 사용하는 것이 좋습니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기