JAVA/Coding Test Study
[Lv.2] 프로그래머스 - JadenCase 문자열 만들기 : Java
♡˖GYURI˖♡
2024. 5. 20. 01:03
728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이해하기
- split(" ")으로 String 배열로 변환한 후에
- for문으로 String 배열을 순회하면서
- 조건대로 문자열을 변환해서 다시 대입해야지~
하고 풀었다가 실패했다 ㅋㅋ...
질문하기를 보니 공백문자가 연속해서 나올 수도 있다는 점을 살피지 못했던 것 같다.
예를 들어 아래와 같이 나오는 경우를 간과한 것이다.
입력값 〉 " for the what 1what "
기댓값 〉 " For The What 1what "
참고한 블로그⬇️
[프로그래머스] JadenCase 문자열 만들기(Java)
프로그래머스 JadenCase 문자열 만들기https://school.programmers.co.kr/learn/courses/30/lessons/12951모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열을 만든다.첫 문자가 알파벳이 아닐
velog.io
문제풀이
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 반환
- 아니라면 마지막 " " 제거 후 반환!