Java에서 문자열(String)은 여러 문자를 순서대로 저장하는 데 사용되며, 하나의 객체로 취급됩니다. java.lang 패키지에 포함된 String 클래스가 이러한 문자열을 표현합니다.
문자열은 다른 객체와 마찬가지로 new 키워드를 사용해 생성하거나, 기본 자료형처럼 리터럴 값을 직접 할당하는 방식으로 만들 수 있습니다.
String stringObject = new String("Hello how are you");
String stringLiteral = "Welcome to Tutorialspoint";문자열 연결(Concatenation)이란?
두 개의 문자열을 하나로 합쳐 새로운 문자열을 만드는 작업을 문자열 연결이라고 합니다. Java에서 문자열을 연결하는 대표적인 방법은 다음 세 가지입니다.
1. "+" 연산자 사용하기
Java는 문자열 전용 연결 연산자인 "+"를 제공합니다. 이 연산자를 사용하면 두 문자열을 간단하게 더해 하나의 문자열로 만들 수 있습니다.
예제 코드
import java.util.Scanner;
public class StringExample {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("첫 번째 문자열을 입력하세요: ");
String str1 = sc.next();
System.out.println("두 번째 문자열을 입력하세요: ");
String str2 = sc.next();
// 두 문자열을 연결
String result = str1 + str2;
System.out.println(result);
}
}실행 결과
첫 번째 문자열을 입력하세요: Krishna 두 번째 문자열을 입력하세요: Kasyap KrishnaKasyap
2. concat() 메서드 사용하기
String 클래스의 concat() 메서드는 인수로 전달받은 문자열을 현재 문자열 뒤에 붙인 후, 연결된 새로운 문자열을 반환합니다.
예제 코드
import java.util.Scanner;
public class StringExample {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("첫 번째 문자열을 입력하세요: ");
String str1 = sc.next();
System.out.println("두 번째 문자열을 입력하세요: ");
String str2 = sc.next();
// 두 문자열을 연결
String result = str1.concat(str2);
System.out.println(result);
}
}실행 결과
첫 번째 문자열을 입력하세요: Krishna 두 번째 문자열을 입력하세요: Kasyap KrishnaKasyap
3. StringBuffer 및 StringBuilder 클래스 사용하기
StringBuffer와 StringBuilder는 문자열 내용을 수정해야 할 때 String 대신 사용할 수 있는 클래스입니다. 이들은 String과 유사하지만 변경 가능(mutable)하다는 점이 다르며, 내용을 조작할 수 있는 다양한 메서드를 제공합니다. 그중 append() 메서드는 인수로 받은 문자열을 현재 StringBuilder 객체에 추가합니다.
예제 코드
import java.util.Scanner;
public class StringExample {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("첫 번째 문자열을 입력하세요: ");
String str1 = sc.next();
System.out.println("두 번째 문자열을 입력하세요: ");
String str2 = sc.next();
StringBuilder sb = new StringBuilder(str1);
// 두 문자열을 연결
sb.append(str2);
System.out.println(sb);
}
}실행 결과
첫 번째 문자열을 입력하세요: Krishna 두 번째 문자열을 입력하세요: Kasyap KrishnaKasyap
마무리
간단한 문자열 연결에는 "+" 연산자나 concat() 메서드가 적합합니다. 반면 반복문 안에서 문자열을 여러 번 이어 붙이는 등 성능이 중요한 상황에서는 단일 스레드 환경에서는 StringBuilder, 멀티 스레드 환경에서는 StringBuffer를 사용하는 것이 좋습니다.