Intro
char 데이터는 String과는 다르게 변수를 선언할 때 작은따옴표로 묶어야 하고, 문자를 딱 하나만 저장할 수 있는 자료형이다. 기본 문법을 익히면서 char 데이터끼리 합치려는데 자꾸 에러가 나서 찾아보게 되었고, 이 글에서는 StringBuilder를 이용해서 char 데이터들을 String으로 합치는 방법에 대해 알아보고자 한다.
StringBuilder
StringBuilder는 정확하게는 java.lang.StringBuilder로, 자바의 표준 라이브러리인 java.lang 패키지에 포함되어 있다.
java.util 패키지 안에 있는 클래스들은 다 import를 해 줘야 하지만 StringBuilder는 import 없이 사용할 수 있다.
public class Main {
public static void main(String[] args) {
String str = "string";
char a = str.charAt(0);
char b = str.charAt(str.length()-1); // str의 마지막 글자를 b에 저장
StringBuilder sb = new StringBuilder();
sb.append(a).append(b); // sb.append(a), sb.append(b) 분리해서 써도 됨
String result = sb.toString();
System.out.println(result);
}
}
주석으로 써 놓기도 했지만, sb.append(a).append(b)는 각각 다른 줄에 sb.append(a), sb.append(b)로 써도 된다.
결과로는 sg가 출력된다.
이것 말고도 char 데이터들을 가진 배열이나 컬렉션 프레임워크의 리스트(ArrayList) 등을 생성해서 문자열로 재출력하는 방법이 있는데, 구현하기 너무 번거롭고 굳이 싶어서 작성하지 않았다.
StringBuilder는 char 데이터들끼리 합치는 것뿐 아니라 문자열끼리의 병합도 지원한다고 한다. + 연산자를 사용하면 메모리의 할당과 해제가 지속적으로 일어나는 문제가 있는데 StringBuilder를 사용하면 해당 문제를 완화할 수 있다.
'Programming Language > Java' 카테고리의 다른 글
[Java] Java란? (0) | 2023.11.28 |
---|---|
[Java] 백준 BOJ 9086: 문자열 (0) | 2023.11.20 |
[Java] for-each문(향상된 for문) (0) | 2023.11.17 |
[Java] 백준 BOJ 10818: 최소, 최대 (0) | 2023.11.08 |
[Java] 백준 BOJ 10807: 개수 세기 (0) | 2023.11.02 |