시작하며
문자열 배열을 하나의 문자열로 변환하려는 경우 자바에서는 .toString()을 이용하여 직접 변환할 수 없습니다.
String[] company = { "Apple", "Amazon", "Google", "Microsoft"}; System.out.println(company.toString());
[Ljava.lang.String;@9225652
요상하게 출력되는 값은 객체 타입과 해시값입니다. 하나의 문자열로 만드는 6가지 방법에 대해서 알아보겠습니다.
배열을 하나의 문자열(String)로 합치는 법
방법 1. String.join()
String.join()
은 합친 문자열을 반환합니다. join()의 첫 번째 인자로 배열의 원소간 연결할 구분 문자, 두 번째 인자로 배열을 넣습니다.
String[] company = { "Apple", "Amazon", "Google", "Microsoft"}; String joinString = String.join(", ", company); System.out.println(joinString);
Apple, Amazon, Google, Microsoft
join()의 첫 번째 인자인 구분문자를 생략할 수 있습니다. 생략하면 공백으로 배열의 원소를 연결합니다.
String joinString = String.join(" ","Apple", "Amazon", "Google", "Microsoft"); System.out.println(joinString);
Apple Amazon Google Microsoft
List 컬랙션이더라도 String.join을 같은 방법으로 사용할 수 있습니다.
List<String> company = List.of("Apple", "Amazon", "Google", "Microsoft"); String joinString = String.join("-", company); System.out.println(joinString);
Apple-Amazon-Google-Microsoft
방법 2. Streams API
인텔리제이 IDE를 사용하신다면 String.join으로 변경을 제안해줍니다.
String[] company = {"Apple", "Amazon", "Google", "Microsoft"}; String str = Arrays.stream(company).collect(Collectors.joining(", ")); System.out.println(str);
Apple, Amazon, Google, Microsoft
stream을 이용하면 붙일 문자의 접두사, 접미사를 추가할 수 있습니다. Collectors.joining의 첫 번째 인자는 구분 문자, 두 번째 인자는 접두사, 세 번째 인자는 접미사입니다.
String[] company = {"Apple", "Amazon", "Google", "Microsoft"}; String str = Arrays.stream(company).collect(Collectors.joining(", ", "<", ">")); System.out.println(str);
<Apple, Amazon, Google, Microsoft>
방법 3. Arrays.toString()
앞서 구분 문자를 지정할 수 있는 방법과 다르게 Arrays.toString은 모든 배열 요소를 ,
로, 문자열의 시작과 끝에 대괄호([])가 붙습니다.
String[] company = {"Apple", "Amazon", "Google", "Microsoft"}; String str = Arrays.toString(company); System.out.println(str);
[Apple, Amazon, Google, Microsoft]
문자열 뿐만 아니라 정수형, 실수형도 문자열로 변환해줍니다.
int[] number = {1, 2, 3, 4}; System.out.println(Arrays.toString(number)); double[] prices = {3.14, 4.0, 1.1}; System.out.println(Arrays.toString(prices));
[1, 2, 3, 4]
[3.14, 4.0, 1.1]
방법 4. StringJoiner
StringJoiner는 자바 8버전 이상부터 사용할 수 있습니다. StringJoiner 생성자에 구분문자를, 연결하려는 문자를 add메서드를 이용하여 문자를 생성할 수 있습니다.
String str = new StringJoiner("-") .add("Apple") .add("Amazon") .add("Google") .add("Microsoft") .toString(); System.out.println(str);
Apple-Amazon-Google-Microsoft
방법 5. StringBuilder.append()
전통적인 문자를 다루는 방법으로는 StringBuilder가 있습니다. 앞서 살펴본 편한 방법이 있기에 StringBuilder는 거의 사용하지 않습니다.
StringBuilder builder = new StringBuilder(); String[] company = {"Apple", "Amazon", "Google", "Microsoft"}; for (String name : company) { builder.append(name).append("-"); } String str = builder.toString(); System.out.println(str);
Apple-Amazon-Google-Microsoft-
append로 구분자를 추가하는 방식이기에 맨 마지막 배열 원소인 Microsoft 다음에 구분자 -가 붙어있습니다.
방법 6. Apache Commons
문자를 다루는 편리한 라이브러리로
Apache Common Lang가 있습니다. StringUtils.join를 이용하여 배열 문자열을 문자열로 변환할 수 있습니다.
String[] company = {"Apple", "Amazon", "Google", "Microsoft"}; String str = StringUtils.join(company, "-"); System.out.println(company);
Apple-Amazon-Google-Microsoft
본 글을 작성하기 위해서 다음 링크를 참고하였습니다.
'Computer Science > Java-Spring' 카테고리의 다른 글
완벽정리! 자바 string 문자열을 배열로 분리하기 (2) | 2021.11.21 |
---|---|
JPA 1대 N 양방향 연관관계 매핑 및 생성 API 만들기 (4) | 2021.11.21 |
스프링 코드로 이해하는 핵사고날 아키텍처 (11) | 2021.11.13 |
완벽정리! Junit5로 예외 테스트하는 방법 (3) | 2021.11.12 |
완벽정리! LocalDateTime을 살펴보자 (7) | 2021.11.08 |
댓글을 사용할 수 없습니다.