나의 풀이
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
/* 소문자로 변경 */
s=s.toLowerCase();
/*소문자 저장용 문자 배열 */
char[] chars=s.toCharArray();
System.out.println(Arrays.toString(chars));
chars[0] = Character.toUpperCase(chars[0]);
for(int i=1; i< chars.length-1; i++){
if(chars[i]==' '){
chars[i+1]=Character.toUpperCase(chars[i+1]);
}
}
System.out.println(Arrays.toString(chars));
return String.join(" ", String.valueOf(chars));
}
}
▶ 애당초 문자열을 "소문자"로 바꾸고 시작한다는 점이 특징이다.
▶ 문자열의 가장 맨 처음 영문자는 대문자로 바꾸주고 난 다음 for문을 순회하자
▶ 문자열의 가장 맨 처음 글자가 숫자이면, 숫자 그대로 반환된다. 아무 이상이 없다.
▶ " " 공백에 대하여 toUpperCase() 메서드를 적용시키는 경우에도 공백 그대로 반환한다. 아무이상이 없다.
다른 사람의 풀이
class Solution {
public String solution(String s) {
String answer = "";
String[] sp = s.toLowerCase().split("");
boolean flag = true;
for(String ss : sp) {
answer += flag ? ss.toUpperCase() : ss;
flag = ss.equals(" ") ? true : false;
}
return answer;
}
}
▶ s.toLowerCase().split("") → toLowerCase()의 리턴타입이 String이므로 split() 메서드를 또 호출할 수 있다.
▶ 삼항연산자 true이면, 대문자로 바꾸고, false이면 그냥 지나 간다.
'프로그래머스(자바) > LV.2(자바)' 카테고리의 다른 글
다음 큰 숫자→'문자열'에서 특정 요소 개수 세기(replace)★★ (0) | 2022.12.24 |
---|---|
피보나치 수→ 오버플로우 극복방법: %★★★ (1) | 2022.12.24 |
이진 변환 반복하기 → 특정 요소 개수 replace() 이용★★★ + 10진수→2진수★ (0) | 2022.12.23 |
올바른 괄호 →예외★★ + count로 접근 (0) | 2022.12.23 |
최솟값 만들기 → 동일 for문 안에서 서로 반대로 곱하기★★ (0) | 2022.12.23 |