#문제
https://programmers.co.kr/learn/courses/30/lessons/12951#
#풀이
단어가 공백으로 구분되어 주어지는데 공백의 칸 수가 들쑥 날쑥 할 수 있다.
split(" ")으로 쪼갰다가 틀린 케이스가 존재해서 정규식으로 뒤에 공백까지 포함해서 단어를 나눠서 처리하였다.
마지막 단어 뒤에는 공백이 없거나 또는 공백이 있을 수 있다. 공백이 있다면 while문에서 처리 될 것이고,
공백이 없다면 따로 추가 처리하도록 코드를 구현하였다.
지금와서 생각해보니 split 함수에서도 정규표현식을 이용해 문자열을 분리할 수 있었다.
#소스코드
import java.util.*;
import java.io.*;
import java.util.regex.*;
class Solution {
public String solution(String s) {
int startIdx = 0, endIdx = 0;
String word = "";
StringBuilder sb = new StringBuilder();
Pattern p = Pattern.compile("[A-Za-z0-9]+\\s+");
Matcher m = p.matcher(s);
while(m.find()){
startIdx = m.start();
endIdx = m.end();
word = s.substring(startIdx, endIdx);
sb.append(String.valueOf(word.charAt(0)).toUpperCase());
sb.append(word.substring(1).toLowerCase());
}
if(endIdx < s.length()){
word = s.substring(endIdx);
sb.append(String.valueOf(word.charAt(0)).toUpperCase());
sb.append(word.substring(1).toLowerCase());
}
return sb.toString();
}
}
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 뉴스 클러스터링 (Java) (0) | 2021.10.23 |
---|---|
[프로그래머스] 소수 찾기 (Java) (0) | 2021.10.23 |
[프로그래머스] 오픈채팅방 (Java) (0) | 2021.10.22 |
[프로그래머스] 예상 대진표 (Java) (0) | 2021.10.21 |
[프로그래머스] 이진 변환 반복하기 (Java) (0) | 2021.10.21 |