Development Logs/Algorithms
[JAVA] 프로그래머스 : JadenCase 문자열 만들기 (Level 2)
유뱅유뱅뱅
2020. 8. 28. 12:24
반응형
https://programmers.co.kr/learn/courses/30/lessons/12951#
코딩테스트 연습 - JadenCase 문자열 만들기
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건
programmers.co.kr
해결 방안
s를 함부로 split 하게 되는 경우 주어진 s 중 3People__abc 와 같은 경우 두 번 띄어쓰기를 처리하는데 어려움을 겪었다. 따라서 StringBuilder를 이용하여 i일 때 i-1 인덱스가 " "인 경우 대문자로 변환해주었다.
이 때 StringBuilder의 setCharAt()을 이용하여 i번 째 char형을 쉽게 바꿀 수 있었으며 Character.toUpperCase()를 이용하여 해당 char를 대문자로 바꿀 수 있다.
* StringBuilder의 setCharAt(int i, char c) : StringBuilder 변수의 i번째 index의 character를 c로 바꿔준다.
Character.toUpperCase(char c) : c를 대문자로
Character.toLowerCase(char c) : c를 소문자로
코드
//JadenCase 문자열 만들기
class Solution {
public String solution(String s) {
String answer = "";
s = s.toLowerCase();
StringBuilder sb = new StringBuilder(s);
for(int i=0; i<s.length(); i++){
if(s.charAt(i) == ' '){
continue;
}
if(i==0)
sb.setCharAt(i, Character.toUpperCase(s.charAt(i)));
else if(i>0){
if(s.charAt(i-1) == ' ')
sb.setCharAt(i, Character.toUpperCase(s.charAt(i)));
}
}
answer = new String(sb);
return answer;
}
}
반응형