Solution 1) 내 풀이
import java.util.*;

class Solution {
    public String[] solution(String myString) {
        return Arrays.stream(myString.split("x"))
                .filter(s -> !s.equals(" ") && !s.equals(""))
                .sorted()
                .toArray(String[]::new);
    }
}

 

코드 및 문제 리뷰

문자열을 x를 구분자로 나눠 나온 단어들을 사전순 배열로 반환하는 문제이다.

단, 빈 문자열은 반환할 때 배열에 넣지 않는다.

 

빈 문자열 때문에 조금 애먹었다. 

처음엔 filter(s -> !s.isEmpty();) 등으로 시도 했다 실패했다.

예외를 많이 만들어보고 조건에는 없지만 혹시 문자열 안에 space가 있을지 몰라

!s.equals(" ")를 만들어 넣었으나 실패했다.

그리고 다시 x가 두번 연속해서 들어오는 경우 정말 말그대로 '빈' 문자열 "" 이 올 수 있음을 알았다.

 !s.equals("")를 추가해주고서야 겨우 성공해냈다.

 

예외를 생객해내기가 참 어려운 것 같다.

+ Recent posts