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


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