코딩테스트 연습 > 코딩테스트 입문 > 문자열 정렬하기 (1)
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
my_string | result |
---|---|
"hi12392" | [1, 2, 2, 3, 9] |
"p2o4i8gj2" | [2, 2, 4, 8] |
"abcde0" | [0] |
import java.util.*;
class Solution {
public int[] solution(String my_string) {
String intStr = my_string.replaceAll("[^0-9]","");
int[] result = Arrays.stream(intStr.split(""))
.mapToInt(Integer::parseInt)
.sorted()
.toArray();
return result;
}
}
문자열에서 숫자가 아닌 것들을 replaceAll과 정규 표현식을 통해 없애고 숫자만 남긴다.
stream을 사용해서 숫자 문자열을 한 글자씩 나누어 배열로 만들고 오름차순 정렬하여 배열로 변환하였다.
메서드 | 설명 |
---|---|
replaceAll("[^0-9]", "") | 정규표현식으로 숫자가 아닌 모든 문자를 제거 |
split("") | 문자열을 한 글자씩 잘라 문자열 배열로 반환 |
mapToInt(Integer::parseInt) | 문자열을 정수로 변환 |
toArray() | 최종적으로 int 배열로 변환 |
문자열에서 숫자만 빼내야겠다고 생각하던 차에.. 찾아보니까 문자를 없애는 방법이 있었다 !!! 발상의 전환;; ㅋ ㅋ