https://school.programmers.co.kr/learn/courses/30/lessons/120850

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Solution {
public List solution(String my_string) {
char[] strArray = my_string.toCharArray(); // [h,i,1,2]
List list = new ArrayList<>();
for (int i = 0; i < strArray.length; i++) {
if (strArray[i] == '1' || strArray[i] == '2' || strArray[i] == '3' ||
strArray[i] == '4' || strArray[i] == '5' || strArray[i] == '6' ||
strArray[i] == '7' || strArray[i] == '8' || strArray[i] == '9' ||
strArray[i] == '0') {
String str = String.valueOf(strArray[i]);
int number = Integer.parseInt(str);
list.add(number);
Collections.sort(list);
}
}
return list;
}
}
import java.util.*;
class Solution {
public List<Integer> solution(String my_string) {
char[] strArray = my_string.toCharArray();
List<Integer> list = new ArrayList<>();
for (char c : strArray) {
if (Character.isDigit(c)) {
int number = Character.getNumericValue(c);
list.add(number);
}
}
Collections.sort(list);
return list;
}
}
class Solution {
public int[] solution(String my_string) {
// 문자열에서 알파벳을 모두 제거하여 숫자만 남깁니다.
// "hi12" -> "12"
my_string = my_string.replaceAll("[a-z]", "");
// 결과를 저장할 배열을 문자열의 길이와 동일한 크기로 생성합니다.
// int[] answer = new int[2]
int[] answer = new int[my_string.length()];
// 문자열의 각 문자를 숫자로 변환하여 배열에 저장합니다.
// int number = '2' - '0'
for (int i = 0; i < my_string.length(); i++) {
// 각 문자의 아스키 코드 값에서 '0'의 아스키 코드 값을 빼줌으로써 해당 문자가 나타내는 숫자를 구합니다.
answer[i] = my_string.charAt(i) - '0';
}
// 배열을 정렬합니다.
Arrays.sort(answer);
// 결과 배열을 반환합니다.
return answer;
}
}
1) replaceAll()은 String에서 원하지 않는 값을 제거할 때 사용할 수도 있다.
ex)
String str = "hi12345";
newString = str.replaceAll("12345", "");
// newString은 hi가 된다.
2)
Character.getNumericValue(char) 메서드는 주어진 문자에 대해 해당하는 숫자 값을 반환합니다.
이 메서드는 문자가 0에서 9까지의 숫자인 경우 해당하는 숫자 값을 반환하고, 그렇지 않은 경우 -1을 반환합니다.
예를 들어, Character.getNumericValue('5')는 5를 반환하고, Character.getNumericValue('a')는 -1을 반환합니다.
이 두 가지 방법은 문자를 숫자로 변환하는 데 사용될 수 있지만, Character.getNumericValue(char)는 숫자 이외의 문자에 대해 -1을 반환하므로 특정 상황에 더 유용할 수 있습니다. 그러나 문자가 '0'에서 '9' 사이에 있을 때는 간단하게 아스키 코드 값의 차이를 이용하는 방법도 효과적입니다.
3) boolean Character.isDigit() : char를 대상으로 숫자인지 검사한다. 만약 숫자라면, true를 반환한다.
4) Collections.sort() : List를 오름차순으로 정렬한다.
Collections.sort(리스트명, Collections.reverseOrder()): List를 내름차순으로 정렬한다.