
String[] words = s.split(" ", -1);
class Solution {
public String solution(String s) {
//공백기준으로 문자열 나눠서 배열로 저장
String[] words = s.split(" ", -1);
String temp;
StringBuilder answer = new StringBuilder();
for(int i = 0; i < words.length; i++){
temp = words[i];
for (int j = 0; j < temp.length(); j++) {
char at = temp.charAt(j);
if (j % 2 == 1) { //홀수
answer.append(Character.toLowerCase(at));
} else if (j % 2 == 0) { //짝수
answer.append(Character.toUpperCase(at));
}
}
if (i < words.length - 1) {
answer.append(" ");
}
}
return answer.toString();
}
}
String[] words = s.split(" ");으로 제출했을 때 오류
class Solution {
public String solution(String s) {
//공백기준으로 문자열 나눠서 배열로 저장
String[] words = s.split(" ");
String temp;
StringBuilder answer = new StringBuilder();
for(int i = 0; i < words.length; i++){
temp = words[i];
for (int j = 0; j < temp.length(); j++) {
char at = temp.charAt(j);
if (j % 2 == 1) { //홀수
answer.append(Character.toLowerCase(at));
} else if (j % 2 == 0) { //짝수
answer.append(Character.toUpperCase(at));
}
}
if (i < words.length - 1) {
answer.append(" ");
}
}
return answer.toString();
}
}

String[] words = s.split(" ", -1); 과 String[] words = s.split(" ");의 차이
String[] words = s.split(" ", -1);
여기서 -1은 제한이 없음을 의미
따라서 문자열 내의 모든 공백을 기준으로 나눔
만약 문자열의 끝에 공백이 있다면, 끝에 빈 문자열도 포함하여 반환
배열의 마지막에 빈 문자열이 추가되는 것을 방지
String[] words = s.split(" ");
여기서는 기본적으로 limit가 지정되지 않았으므로 기본값인 0이 적용
이 경우 문자열의 시작 부분에 있는 모든 공백은 무시되며, 문자열 중간에 있는 연속된 공백은 하나로 간주되어 나뉨
문자열 끝에 있는 공백은 무시되어 배열에는 끝에 빈 문자열이 포함되지 않음
-> -1을 사용하면 빈 문자열도 포함하여 문자열을 나누고, 기본값인 0을 사용하면 빈 문자열은 포함되지 않는다
여러 개의 연속된 공백을 유지하고 싶거나, 문자열의 끝에 공백이 있어도 빈 문자열을 포함하고 싶다면 String[] words = s.split(" ", -1);을 사용

String[] words = s.split(" ", -1);은 마지막 빈 문자열을 그대로 출력
https://school.programmers.co.kr/learn/courses/30/lessons/12930