이번 문제는 생각보다 어려웠다.
공백 문자가 연속으로 여러개 나오는 경우도 있었기 때문에 어렵게 느껴졌던 것 같다.
얻어걸림..
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]);
}
}
우와
스트림으로 풀이한 다른사람의 풀이가 있는지 구경하러 들어갔다가
정규식을 이용해 깔끔하게 풀이한 사람의 코드를 발견하였다.
class Solution {
public String[] solution(String my_string) {
return my_string.trim().split("[ ]+");
}
}
✏️ [ ]+
: 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미
class Solution {
public String[] solution(String myString) {
return myString.trim().split("\\s+");
}
}
✏️ \\s+
: 하나 이상의 연속된 공백 문자를 구분자로 사용하여 문자열을 분리하는 것을 의미
\s
는 정규 표현식의 특수 문자로, 공백 문자를 의미한다.
+
는 하나 이상의 연속된 문자를 나타내는 특수 문자이다.
아래는 학습해보고자 하는 스트림을 이용한 풀이!
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