
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
String[] sArr = s.split(" ", -1);
for (int i = 0 ; i < sArr.length; i ++) {
if(!sArr[i].isEmpty()) {
answer += Character.toUpperCase(sArr[i].charAt(0));
answer += sArr[i].substring(1).toLowerCase();
}
if (i < sArr.length - 1) {
answer += " ";
}
}
return answer;
}
}

첫 번째 문자만 대문자로 변경하는 방법
첫 번째 문자만 대문자로 바꿔서 answer에 저장하고 나머지 문자들은 소문자로 바꿔서 answer에 저장하는 방법을 생각해내는데 오랜 시간이 걸렸다.
처음에는 문자열을 반복문을 돌려서 문자로 변경한 후에 첫번째 문자일 경우에만 대문자로 바꾸고 나머지는 소문자로 answer에 저장하는 방식을 진행했었다.
그렇게 하니 이중 for 문을 사용하게 되는 것이 불편했다.
그래서 subString을 이용하여 원하는 인덱스부터 저장하는 방식을 취했다.
문자열의 가장 마지막에 공백이 들어갔을 때
그냥 s.split(" ")을 써서 문자열의 가장 마지막에 공백이 들어갔을 때 해당 공백들은 배열에 저장이 아예 되지 않았다.
처음에는 s의 마지막에 " s"를 저장한 다음 split을 진행하고 배열의 마지막 값은 읽지 않는 것으로 코드를 짰다. 그렇게 하니 if 문이 너무 늘어나게 되었다.
그래서 이렇게 복잡하게 하지 않고 공백도 저장할 수 있는 방식을 찾았다.
s.split(" ", -1)을 쓰는 방식이다. 해당 함수의 2번째 인자는 limit을 나타내는 것이었다. 그래서 -1을 쓰게 되면 공백도 포함하여 문자열을 나누어서 배열에 저장한다