일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- wil
- 99일지
- 99클럽
- 개발자블로그
- Spring
- til
- 소프트웨어
- 운영체제
- 스파르타내일배움캠프WIL
- Python
- 컴퓨터개론
- 프로그래머스
- 중심사회
- 백준
- Flutter
- 스파르타코딩클럽
- 컴퓨터구조론 5판
- 부트캠프
- MySQL
- 국비
- 개발자스터디
- 개인공부
- AWS
- 스파르타내일배움캠프
- 항해
- 내일배움캠프
- 자바
- java
- 스파르타내일배움캠프TIL
- 코딩테스트
- Today
- Total
컴공생의 발자취
자바 char 배열 정렬 (Sorting) 및 형변환 (char Array to String && Array to String) 본문
💡 오늘의 학습 키워드
- 자바 char 배열 정렬 (Sorting)
- 형변환
* char Array to String
* Array to String
자바 char 배열 정렬
: 알파벳의 아스키 값을 비교하여 오름차순으로 정렬한다.
* sort() 함수를 사용하기 위해서는 import java.util.Arrays;를 해줘야 한다.
* char 타입의 배열일 경우, Collections.reverseOrder()은 타입 에러로 사용 불가!
-> 대신 for문을 사용해서 뒤집어 줄 수 있음
import java.util.Arrays;
char[] arr = {'a', 't', 'b', 'c'};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
// result : [a, b, c, t]
형변환
* char Array to String : char 배열을 문자열로 변환하기
- String.vlaueOf()
char[] arr = {'a', 'b', 'c'};
String str = String.vlaueOf(arr);
System.out.println(str);
// result : abc
- new String()
char[] arr = {'a', 'b', 'c'};
String str = new String(arr);
System.out.println(str);
// result : abc
* Array to String : 배열을 문자열로 변환하기
- Arrays.toString()
* 사용하기 위해서는 import java.util.Arrays;를 해줘야 한다.
char[] arr = {'a', 'b', 'c'};
String str = Arrays.toString(arr);
System.out.println(str);
// result : [a, b, c]
* char Array to String vs. Array to String
- char Array to String : {'a', 'b', 'c'} -> "abc" 우리가 생각하는 문자열로 변경
- Array to String : {'a', 'b', 'c'} -> [a, b, c] 리스트 형식의 문자열로 변경
오늘의 회고
문제1 : [음양 더하기]
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
입력값으로 자연수 배열과 그 자연수가 음수인지, 양수인지에 대한 정보를 담고 있는 배열을 가지고 모두 더했을 때의 총합을 리턴하는 문제였다.
문제가 쉬워서 분석 후 코드로 작성하고 바로 풀었다.
- 어떻게 해결했는지
// absolutes = 자연수
// signs = absolutes의 음수, 양수
// answer = 0 초기화
// absolutes의 길이 만큼 반복
// true일 경우(양수) answer += absolutes[i] (더하기)
// false일 경우(음수) answer -= absolutes[i] (빼기)
// result : 입력된 수의 음수, 양수 판별 후 총합
class Solution {
public int solution(int[] absolutes, boolean[] signs) {
int answer = 0;
for (int i = 0; i < absolutes.length; i++) {
if (signs[i] == true)
answer += absolutes[i];
else
answer -= absolutes[i];
}
return answer;
}
}
문제2 : [문자열 내림차순으로 배치하기]
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
문제 그대로 입력된 문자열을 내림차순으로 정렬 후 리턴해주는 게 문제였다.
단, 대문자는 소문자 보다 작은 것으로 간주한다.
입력된 값이 문자열이라서 배열로 변환한 후 sort() 함수를 사용하면 되겠다고 생각했다.
하지만, 내가 만든 배열의 타입이 char이기에 Colletions.reverseOrder()을 사용하려면 Object? 타입이었나?
타입이 맞지 않아서 sort() 함수만 사용할 수 있었다.
그래서 그냥 배열의 뒷쪽부터 하나씩 문자열로 타입을 변경해준 후 리턴할 문자열에 넣어줬다.
- 어떻게 해결했는지
// 문자열 char 배열로 바꾸기
// 배열 정렬 sort() 내림차순
// 정렬된 배열 다시 문자열로 바꾸기
// result : 문자열 내림차순
// 단, 대문자는 소문자보다 작은 것으로 간주
import java.util.Arrays;
import java.util.Collections;
class Solution {
public String solution(String s) {
String answer = "";
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
for (int i = s.length() -1 ; i >= 0 ; i--) {
answer += String.valueOf(charArray[i]);
}
return answer;
}
}
- 무엇을 새롭게 알았는지
배열 정렬과 char 배열을 문자열로 변경하는 방법에 대해 알게 되었다.
특히나 배열을 정렬 할 때, char타입일 경우 Collections.reverseOrder() 함수는 사용이 불가능하다는 걸 알았고
이를 해결하기 위해 for문을 이용하거나 다르게 사용해야 한다는 걸 깨달았다?
마지막으로 오늘도 어김없이 형변환 함수에 대해 습득했다.
추후에 자바에서 자주 사용하는 형변환 함수만 따로 정리해둬야겠다.
내일 학습할 것은 무엇인지
- 빅분기 자격증 공부!!!
- 클럽99 코딩테스트
'💡 코테' 카테고리의 다른 글
하샤드 수 및 이상한 문자 만들기 (0) | 2024.04.04 |
---|---|
StringBuilder에 대해 (2) | 2024.04.03 |
자바 동적 배열 선언 및 형변환 (long to String) (0) | 2024.04.01 |
JAVA 자동 형변환 & 강제 형변환 (0) | 2024.03.31 |
문자열에서 index 위치의 문자 반환 및 형변환 (char to int & String to Array) (0) | 2024.03.30 |