반응형
JadenCase 문자열 만들기
문제 설명
JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.
예시
s | return |
"3people unFollowed me" | "3people Unfollowed Me" |
"for the last week" | "For The Last Week" |
Flow
1.split() 메소드 이용하여 공백을 기준으로 문자열 자르기
2. 자른 단어 수(sp.length)만큼 for문 반복
3-1. (단어가 들어간) 배열 요소가 공백일 경우 answer에 공백 붙이기
3-2. 단어 첫글자는 대문자로 변환, 대문자를 제외한 문자들은 소문자로 변환하여 answer에 붙이기
4. 원래 문자열 s의 마지막이 공백일 경우 answer 반환
4-2. 단어를 붙일 때 마지막에 공백을 함께 붙여 마지막 공백을 제외하고 반환
참고 자료
split()
String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나누는 메소드
String string = "1.2.3.4.5"; String[] sp = string.split("."); //{"1", "2", "3", "4", "5"} //문자열을 .을 기준으로 나눔 |
toUpperCase() / toLowerCase()
toUpperCase() 문자열을 대문자로 변환하는 메소드
toLowerCase() 문자열을 소문자로 변환하는 메소드
String str = "AbCdEf"; System.out.println(str.toUpperCase()); // ABCDEF System.out.println(str.toLowerCase()); // abcdef |
substring(begin, end)
문자열을 begin부터 end - 1까지 자르는 메소드
String str = "HelloWorld"; System.out.println(str.substring(0, 5); // Hello |
class Solution {
public String solution(String s) {
String answer = "";
String[] sp = s.split(" "); // 공백을 기준으로 문자열 자르기
// 공백을 기준으로 잘려진 문자열의 수만큼 반복
for(int i = 0; i < sp.length; i++){
if(sp[i].length() == 0) answer += " "; // 단어가 공백일 경우 반환값에 공백 더하기
else{
answer += sp[i].substring(0, 1).toUpperCase(); // 단어 첫번째 대문자로 변환하여 더하기
answer += sp[i].substring(1, sp[i].length()).toLowerCase(); // 첫글자를 제외하고 소문자로 변환하여 더하기
answer += " "; // 띄어쓰기
}
}
//원래 문자열 마지막이 공백일 경우 그대로 answer 반환
if(s.substring(s.length() -1, s.length()).equals(" ")) return answer;
//마지막에 공백이 더해져서 그 공백을 제외한 answer값 반환
return answer.substring(0, answer.length() - 1);
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[Programmers/JAVA] 행렬의 곱셈 / 프로그래머스 코딩 테스트 연습 (1) | 2021.12.23 |
---|---|
[Programmers/JAVA] 피보나치 수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.22 |
[Programmers/JAVA] N개의 최소공배수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.12.20 |
[Programmers/JAVA] 상호 평가 / 프로그래머스 코딩 테스트 연습 / 위클리 챌린지 2주차 (0) | 2021.08.09 |
[Programmers/JAVA] 부족한 금액 계산하기 / 프로그래머스 코딩 테스트 연습 / 위클리 챌린지 1주차 (0) | 2021.08.09 |
댓글