자바에서 문자열을 합치는 여러가지 방법을 설명드리겠습니다.
+ 연산자 사용
가장 간단하게 문자열을 합치는 방법은 + 연산자를 사용하는 방법입니다.
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"));
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);
문자열을 나열해도 되고, 배열로 만들어서 사용해도 됩니다.
읽으면 좋은 글
[Java] String - repeat : 문자열 N번 반복 출력하기