성장일기

내가 보려고 정리하는 공부기록

코딩테스트/프로그래머스 Lv.0

[프로그래머스] 공백으로 구분하기2 (trim(), 정규표현식) - JAVA

와나나나 2023. 9. 14. 21:27
728x90

프로그래머스 _ 코딩 기초 트레이닝 DAY 17 - (5)

출처 - https://school.programmers.co.kr/learn/courses/30/lessons/181868

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 |  단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

 

입력 #1 |  " i    love  you"

출력 #1 | ["i", "love", "you"]


>> 풀이 <<

그냥 split으로 해도 될 거라고 생각했는데 안됐다.. 그래서 알아보다가 알게 된 사실들!

 

  • 문자열 선행/후행 공백은 별도로 처리해야한다 - string.trim()
    • string.trim()은 선행,후행 공백을 처리해주는 메소드이다.
  • 공백이 여러개라면? - string.split("\\s+")
    • 원래 split(" ")으로 처리했는데 공백자가 많아지면 이걸로 처리가 안된다! 그래서 정규표현식을 이용해 풀이해주었다.
    • 뒤에 +를 붙여주면 한개 이상이라는 의미가 된다! 이 점을 이용해 코드를 작성했다.
\b 단어의 경계
\B 단어가 아닌 것의 경계
\z 입력의 끝
\Z 입력의 끝이지만 종결자가 있는 경우
\s 공백문자
\S 공백 제외 모든 문자
\d [0-9]와 동일
\D 숫자 제외 모든 문

위 표는 정규표현식의 예시표이다.


import java.util.Arrays;
class Solution {
    public String[] solution(String my_string) {
        return my_string.trim().split("\\s+");
    }
}