java is good -> Java Is Good
Q. split() 메서드를 통해 공백을 기준으로 문자열을 나눌 뿐인데, 어떻게 공백의 갯수를 그대로 반환할 수 있는 걸까?
String[] words = str.split(" "); // 공백을 기준으로 문자열을 나누어 배열에 담는다.
result = String.join(" ", words); // String.join 메서드를 사용하여 words 배열의 요소들을 공백을 사이에 두고 결합하여 하나의 문자열로 만든다.
A. 빈 문자열("")이 배열에 존재한다면, 결합된 결과 문자열에서도 빈 문자열 사이에 공백이 삽입된다.
따라서, "java", "", "is", "good"을 결합하면
Java Is Good
와 같은 결과를 얻게 된다.
즉, 주어진 코드에서 띄어쓰기 갯수가 유지되는 이유는 빈 문자열이 words 배열에 포함되고, 이를 다시 결합할 때 공백이 삽입되기 때문이다.