반응형
해당 글에서는 값이 존재하는 배열이나 리스트 내용을 하나의 문자열로 변환하는 방법에 대해서 확인해봅니다.
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);
💡 해당 함수에 대해서 더 알고 싶으시면 아래의 링크를 이용하면 도움이 됩니다.
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"
💡 해당 함수에 대해서 더 알고 싶으시면 아래의 링크를 이용하면 도움이 됩니다.
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) 참고 : 응용하기
💡 해당 예시에서 확인하고 적용해보았습니다.
/**
* 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);
}
💡 해당 예시에서 확인하고 적용해보았습니다.
/**
* 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);
}
오늘도 감사합니다. 😀
반응형
'Java > Short 개발' 카테고리의 다른 글
[Java/Short] 배열/리스트의 요소를 원하는 개수만큼 재 구성 방법 (0) | 2023.05.29 |
---|---|
[Java/Short] 문자열을 배열로 변환 방법 : String to String[], char[] (0) | 2023.05.27 |
[Java/Short] 카운트 Array/Map 구현방법: Counting Array, Counting Map (0) | 2023.05.13 |
[Java/Short] 최대공약수, 최소공배수 구하는 방법 : 두 수 또는 N개의 수 (0) | 2023.05.09 |
[Java/Short] 배열/리스트 내의 최소값, 최대값 찾는 방법 : min, max (0) | 2023.05.02 |