프로그래머스 : 공백으로 구분하기 2

김아무개·2023년 6월 3일
0

프로그래머스

목록 보기
41/41

이번 문제는 생각보다 어려웠다.

공백 문자가 연속으로 여러개 나오는 경우도 있었기 때문에 어렵게 느껴졌던 것 같다.

내 코드

얻어걸림..

import java.util.Arrays;
import java.util.stream.*;

class Solution {
    public String[] solution(String my_string) {
        return Arrays
                .stream(my_string.split(" "))
                .filter(s -> !"".equals(s))
                .collect(Collectors.toList())
                .toArray(new String[0]);
    }
}

우와

스트림으로 풀이한 다른사람의 풀이가 있는지 구경하러 들어갔다가
정규식을 이용해 깔끔하게 풀이한 사람의 코드를 발견하였다.

정규식 이용 다른 사람 풀이 1번째

class Solution {
    public String[] solution(String my_string) {
        return my_string.trim().split("[ ]+");
    }
}

✏️ [ ]+ : 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미


정규식 이용 다른 사람 풀이 3번째

class Solution {
    public String[] solution(String myString) {
        return myString.trim().split("\\s+");
    }
}

✏️ \\s+ : 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미

\s 는 정규 표현식의 특수 문자로, 공백 문자를 의미한다.
+ 는 하나 이상의 연속된 문자를 나타내는 특수 문자이다.




아래는 학습해보고자 하는 스트림을 이용한 풀이!

✏️ Stream 이용 다른 사람 풀이 4번째

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

✏️ String[]::new
배열 생성자를 참조하는 메서드 참조로,
자동으로 적절한 크기의 배열을 생성할 수 있도록 한다.

toArray(String[]::new) 의 기본 형태는
toArray(size -> new String[size]) 이다.





한번 풀 때 마다 🟠 하나씩 지우기

다시 풀어봐야됨

23년 6월
시도한 날짜 : 3, 4, 5, 6, 7, 9
실패한 날짜 : 4
성공한 날짜 : 3, 5, 6, 7, 9

profile
Hello velog! 

0개의 댓글