728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12951
풀이
엄청 쉬운 문제인 줄 알았는데 처음에 런타임에러로 틀렸음 ㅠㅠㅠ
private static class Solution {
private String solution(String s) {
StringBuilder sb = new StringBuilder();
String[] strArr = s.split(" ");
for (int i = 0 ; i < strArr.length ; i++) {
strArr[i] = strArr[i].trim();
sb.append(strArr[i].substring(0, 1).toUpperCase())
.append(strArr[i].substring(1, strArr[i].length()).toLowerCase())
.append(" ");
}
sb.setLength(sb.length() - 1);
return sb.toString();
}
}
처음엔 이렇게 문자열을 나눠서 문자열 함수들을 사용해서 했는데 런타임에러가 났음
그래서 문자열에서 인덱스를 이동해가면서 하나하나씩 비교해가며 JadenCase 문자열로 만들어줬음 !
자세한건 주석으로 !
코드
// 코딩테스트 연습 - 연습문제 - JadenCase 문자열 만들기
// https://school.programmers.co.kr/learn/courses/30/lessons/12951
package PROGRAMMERS.level2;
public class Num12951_JadenCase문자열만들기 {
private static class Solution {
private String solution(String s) {
StringBuilder sb = new StringBuilder();
// 첫번째 문자는 대문자로
sb.append((s.charAt(0) + "").toUpperCase());
// i는 1부터 시작
for (int i = 1; i < s.length(); i++) {
String str = s.charAt(i) + "";
if (str == " ") { // 공백이면
sb.append(str); // 걍 붙임
} else if (s.charAt(i - 1) == ' ') { // 전에 있던 문자가 공백이면
sb.append(str.toUpperCase()); // 대문자로 바꾸기
} else { // 전에 있던 문자가 공백이 아니면
sb.append(str.toLowerCase()); // 소문자로 바꾸기
}
}
return sb.toString();
// String[] str = s.split(" ");
// return String.join(" ", str);
// 얘네 때문인지는 모르겠는데 계속 런타임 에러나네요 ㅠ
// 그래서 다른 방법으로 풀었습니다
}
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution("3people unFollowed me"));
System.out.println(sol.solution("for the last week"));
}
}
728x90