Java/Short 개발
[Java/Short] 배열, 리스트를 문자열로 변환 방법 : Array, List to String
adjh54
2023. 5. 27. 13:11
728x170
해당 글에서는 값이 존재하는 배열이나 리스트 내용을 하나의 문자열로 변환하는 방법에 대해서 확인해봅니다.
1) String.join()를 이용한 방법
💡 String.join 함수를 이용하여서 Array, List를 문자열로 변환하는 예시입니다.
// List to String
List<String> list = new ArrayList<>();
list.add("Java");
list.add("List");
list.add("String");
String resultList = String.join("", list);
System.out.println(resultList); // "JavaListString"
// Array to String
String[] arr = {"java", "List", "String"};
String resultArr = String.join("", arr);
System.out.println(resultArr);
💡 해당 함수에 대해서 더 알고 싶으시면 아래의 링크를 이용하면 도움이 됩니다.
[Java] String 함수 이해하기 : format, join, valueOf, copyValueOf
해당 글에서는 java.lang에 속하는 String 함수에 대해서 이해를 돕기 위해 작성한 글입니다. 1) String 함수 요약 함수 설명 String.format() - 문자열을 “포맷팅”하기 위해서 사용되는 함수입니다. - 지
adjh54.tistory.com
2) StringBuilder를 이용한 방법
💡 StringBuilder 객체를 이용하여서 Array, List를 문자열로 변환하는 예시입니다.
💡 String에 비해 StringBuilder는 문자열의 변경이 자주 발생하는 경우 사용하면 메모리적으로 성능이 우수하다고 합니다.
// List to String
List<String> list = new ArrayList<>();
list.add("Java");
list.add("List");
list.add("String");
StringBuilder sb = new StringBuilder();
for (String s : list) {
sb.append(s);
sb.append(" ");
}
System.out.println(sb.toString()); // "Java List String"
// Array to String
String[] arr = {"java", "List", "String"};
StringBuffer sb2 = new StringBuffer();
for (String s : arr) {
sb2.append(s);
}
System.out.println(sb2.toString()); // "Java List String"
💡 해당 함수에 대해서 더 알고 싶으시면 아래의 링크를 이용하면 도움이 됩니다.
[Java] String, StringBuffer, StringBuilder 이해하기
해당 페이지에서는 String과 StringBuffer, StringBuilder에 대해서 이해하고 각각의 차이점과 언제 사용해야 하는지에 대해 이해하기 위한 글입니다. 1) String, StringBuffer, StringBuilder💡 String이란? - Java에서
adjh54.tistory.com
3) StringJoiner를 이용한 방법
💡 StringJoiner 객체를 이용하여 Array, List를 문자열로 변환하는 예시입니다.
// List to String
List<String> list = new ArrayList<>();
list.add("Java");
list.add("List");
list.add("String");
StringJoiner sj = new StringJoiner(" ");
for (String s : list) {
sj.add(s);
}
String result = sj.toString();
System.out.println(result); // "Java List String"
// Array to String
// Array to String
String[] arr = {"java", "List", "String"};
StringBuffer sb2 = new StringBuffer();
for (String s : arr) {
sb2.append(s);
}
System.out.println(sb2.toString()); // "Java List String"
4) Apache Commons Lang 라이브러리를 이용한 방법
💡 StringUtils.join() 함수를 이용하여서 Array, List를 문자열로 변환하는 예시입니다.
import org.apache.commons.lang3.StringUtils;
//...
String[] arr = {"apple", "banana", "orange"};
String result = StringUtils.join(arr, ", ");
System.out.println(result); // "apple, banana, orange"
5) 참고 : 응용하기
💡 해당 예시에서 확인하고 적용해보았습니다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
/**
* 42. 푸드 파이터 대회
*
* @return ResponseEntity
* @link ...
* @since 2023.05.26
*/
@GetMapping("/42")
public ResponseEntity<apiresponse> question42() {
String answer = "";
int[] food = {1, 3, 4, 6};
List answerList = new ArrayList<>();
/*
* 한명의 참여자에 대해 나눠줄 음식 구하기
*/
// [STEP1] 배열을 순회하면서 요소를 추출합니다.
for (int i = 0; i < food.length; i++) {
// [STEP2] 요소의 값을 반으로 나눴을때 0보다 클 경우만 수행합니다.
if (food[i] / 2 > 0) {
// [STEP3] 요소를 반으로 나누고 내림 값이 각각 선수에게 전달할 값입니다.
int divideCnt = (int) Math.floor(food[i] / 2);
// [STEP4] 전달할 값을 리스트에 문자열 값으로 담아둡니다.
for (int j = 0; j < divideCnt; j++) {
answerList.add(String.valueOf(i));
}
}
}
/*
* 한명의 참여자 음식을 구한 뒤 "0"을 추가한뒤 역순으로 다른 참여자에 대해 음식을 하나의 문자열로 구성합니다.
*/
String divideFoodStr = String.join("", answerList);
Collections.reverse(answerList); // 문자열을 역순으로 정렬합니다.
String divideFoodReverseStr = String.join("", answerList);
answer = divideFoodStr + "0" + divideFoodReverseStr;
ApiResponse ar = ApiResponse
.builder()
.result(answer)
.resultCode(SUCCESS_CODE)
.resultMsg(SUCCESS_MSG).build();
return new ResponseEntity<>(ar, HttpStatus.OK);
}
💡 해당 예시에서 확인하고 적용해보았습니다.
구름LEVEL
구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입
level.goorm.io
/**
* 4. 대문자 만들기
*
* @return ResponseEntity<ApiResponse>
* @link <a href="https://level.goorm.io/exam/171953/%EB%8C%80%EB%AC%B8%EC%9E%90-%EB%A7%8C%EB%93%A4%EA%B8%B0/quiz/1">...</a>
* @since 2023.06.24
*/
@GetMapping("/4")
public ResponseEntity<ApiResponse<Object>> question04() {
String answer = "";
String input = "10";
String input2 = "goormLevel";
String[] input2Arr = input2.split("");
for (int i = 0; i < Integer.parseInt(input); i++) {
input2Arr[i] = input2Arr[i].toUpperCase();
}
answer = String.join("", input2Arr);
ApiResponse<Object> ar = ApiResponse
.builder()
.result(answer)
.resultCode(SUCCESS_CODE)
.resultMsg(SUCCESS_MSG).build();
return new ResponseEntity<>(ar, HttpStatus.OK);
}
오늘도 감사합니다. 😀
그리드형