프로그래머스 JadenCase 문자열 만들기 in Java
문제
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
제한 조건
s는 길이 1 이상인 문자열입니다.
s는 알파벳과 공백문자(" ")로 이루어져 있습니다.
첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다.
접근
원시적으로 접근하여 구현하였다. char array로 바꾸어서 하나씩 탐색해가며 문자가 시작지점(단어의 시작지점) 인지는 isWordStart 라는 boolean을 통하여 판단하였고 문자의 대소문자 구별은 아스키 코드를 사용하여 풀이하였다.
class Solution {
public String solution(String s) {
char[] arr = s.toCharArray();
// 첫 번째 문자는 무조건 시작지점
boolean isWordStart = true;
for(int i=0; i<arr.length; i++){
// 문자가 소문자이고 시작지점인지
if((int)arr[i] >= 97 && (int)arr[i] <= 122 && isWordStart){
// 대문자로 바꿔주고 시작지점 표시를 false로 바꿔준다.
arr[i] = (char)((int)arr[i] - 32);
isWordStart = false;
}
// 문자가 시작지점이 아닌데 대문자라면
else if((int)arr[i] >= 65 && (int)arr[i] <= 91 && !isWordStart){
//소문자로 바꿔준다.
arr[i] = (char)((int)arr[i] + 32);
}
// 공백의 아스키코드는 32이다. 이 이후에 나오는 글자는 시작지점이다.
else if((int)arr[i] == 32){
isWordStart = true;
}
// 알파벳 문자가 아닌 경우엔 아무런 행동도 취하지 않지만 만약 시작지점이었던 경우가 생길 수 있으므로 시작지점을 false로 바꿔준다.
else{
isWordStart = false;
}
}
return String.valueOf(arr);
}
}
Author And Source
이 문제에 관하여(프로그래머스 JadenCase 문자열 만들기 in Java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@peppermint100/프로그래머스-JadenCase-문자열-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)