[프로그래머스] Lv.0 공백으로 구분하기 2 (연속된 공백 하나로 치환)

[프로그래머스] Lv.0 공백으로 구분하기 2 (연속된 공백 하나로 치환)
muaga's avatar
May 16, 2024
[프로그래머스] Lv.0 공백으로 구분하기 2 (연속된 공백 하나로 치환)
Contents
풀이
 
notion image
notion image
 


class Solution { public String[] solution(String my_string) { String[] answer = my_string.replaceAll("\\s+", " ").trim().split(" "); return answer; } }
 

풀이


◽ 과정 1

  1. my_string의 문자열에 공백이 규칙적이지 않고 여러 개라서 배열로 변환하는 과정에서 replaceAll( )을 사용해야겠다고 생각했다. 공백 여러 개를 공백 1개로 치환하는 방법을 찾아보니 정규식 을 사용하면 된다고 한다.
    1. 자세한 내용은 아래에 정리해 놓았다.
      String word = my_string.replaceAll("\\s+", " "); ➡️ " i love you"
 
  1. 배열로 변환해보니 i 앞의 공백인 “ i” 때문에 배열의 크기가 4 가 되었다.
    1. String[] wordArr = word.split(" "); ➡️ [, i, love, you]
 

◽ 과정 2

과정 1의 과정을 통해 맨 앞의 공백을 split(" ") 하기 전, 제거해야 했다.
trim( ) 을 추가하여 문자열 앞 뒤의 공백을 제거하니 원하는 결과가 나왔다.
String word = my_string.replaceAll("\\s+", " ").trim(); ➡️ "i love you" String[] wordArr = word.split(" "); ➡️ [i, love, you]
 
trim( )
문자열의 시작과 끝의 공백을 제거하는 메소드이다. 문자열의 끝부터 마지막 공백이 나올 때까지의 모든 공백을 제거한다.
 
Share article

muaga's Hub