Study/java

[Java] String + 연산자, concat, append 문자열 합치기

 

자바에서 문자열을 합치는 여러가지 방법을 설명드리겠습니다.

 

+ 연산자 사용

가장 간단하게 문자열을 합치는 방법은 + 연산자를 사용하는 방법입니다.

String s = "I Love " + "Java";

 

보기에는 간단하지만, 많은 수의 문자열을 합쳐야할 때는 메모리를 많이 사용하기 때문에 비효율적입니다.

Java는 + 연산자로 문자열을 합칠 때마다 새로운 문자열 객체를 생성합니다.

그래서 성능에 좋지 않은 영향을 줄 수 있습니다.

 

StringBuilder, StringBuffer append 메소드 사용

성능이 중요하다면 StringBuilder나 StringBuffer를 사용하는 것이 좋습니다.

// I Love Java
StringBuilder sb = new StringBuilder("I Love ");
sb.append("Java");

// I Love Java
StringBuffer sbf = new StringBuffer("I Love ");
sbf.append("Java");

 

StringBuilder는 동기화를 제공하지 않아서 단일 스레드에, StringBuffer는 동기화를 제공하기 때문에 멀티 스레드 환경에서 사용하기 좋습니다.

그리고 문자열을 합칠때마다 새로운 문자열을 생성하지 않기 때문에 성능에 좋습니다.

 

 

 

 

concat(String str) 메소드 사용

concat은 두 문자열을 합쳐서 하나의 문자열을 반환하는 메소드입니다.

단순한 로직이기때문에 사용하기 어렵지 않습니다.

String s = "A";
System.out.println(s.concat("B"));

// 이어붙이기
System.out.println(s.concat("B").concat("C").concat("D"));

concat 사용결과
concat 사용결과

A와 B를 합친 문자열이 출력됨을 확인할 수 있습니다.

내부적으로는 새로운 문자열을 생성합니다.

 

String.join

Java 8 이상부터는 String.join 메소드를 사용하여 여러 문자열을 특정 구분자와 함께 합칠 수 있습니다.

String join = String.join(",", "Apple", "Banana", "Cat", "Dog");
System.out.println(join);

// 배열 사용
String[] array = { "Apple", "Banana", "Cat", "Dog" };
String join = String.join(",", array);
System.out.println(join);

String.join 사용 결과
String.join 사용 결과

문자열을 나열해도 되고, 배열로 만들어서 사용해도 됩니다.

 

 

읽으면 좋은 글

[Java] String - repeat : 문자열 N번 반복 출력하기

 

[Java] String - repeat : 문자열 N번 반복 출력하기

String 클래스의 repeat 메소드는 Java 11버전부터 추가된, 문자열을 반복하는 메소드입니다. repeat 메소드 없이 문자열 반복repeat 메소드 없이 문자열을 반복하고자 할 때는 다음과 같이 사용하면 됩

priming.tistory.com