728x90
이해하기
- split(" ")으로 String 배열로 변환한 후에
- for문으로 String 배열을 순회하면서
- 조건대로 문자열을 변환해서 다시 대입해야지~
하고 풀었다가 실패했다 ㅋㅋ...
질문하기를 보니 공백문자가 연속해서 나올 수도 있다는 점을 살피지 못했던 것 같다.
예를 들어 아래와 같이 나오는 경우를 간과한 것이다.
입력값 〉 " for the what 1what "
기댓값 〉 " For The What 1what "
참고한 블로그⬇️
문제풀이
class Solution {
public String solution(String s) {
StringBuffer sb = new StringBuffer();
String[] arr = s.split(" ");
for (int i = 0; i < arr.length; i++) {
String now = arr[i];
if (arr[i].length() == 0) {
sb.append(" ");
} else {
sb.append(now.substring(0, 1).toUpperCase());
sb.append(now.substring(1, now.length()).toLowerCase());
sb.append(" ");
}
}
if (s.substring(s.length() - 1, s.length()).equals(" ")) {
return sb.toString();
}
return sb.toString().substring(0, sb.length() - 1);
}
}
- split(" ")로 String 배열로 만드는 것은 동일
- arr를 for문으로 순회하면서
- 만약 길이가 0이면 공백 추가
- 아니라면
- 맨 앞 한자리만 대문자로, 나머지는 소문자로 변환하여 추가
- (숫자여도 상관없는 듯함)
- 맨 마지막에 잊지 않고 공백 추가!
- 원래 문자열의 맨 마지막이 " "이라면 그대로 answer 반환
- 아니라면 마지막 " " 제거 후 반환!
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.2] 프로그래머스 - 예상 대진표 : Java (0) | 2024.05.20 |
---|---|
[Lv.0] 프로그래머스 - 직사각형 넓이 구하기 : Java (0) | 2024.05.20 |
[Lv.1] 프로그래머스 - 달리기 경주 : Java (0) | 2024.05.15 |
[Lv.1] 프로그래머스 - 공원 산책 : Java (0) | 2024.05.15 |
[Lv.1] 프로그래머스 - 신고 결과 받기 : Java (0) | 2024.05.15 |