str.split(" ") & String.join(" ", words) 이 함께 작용했을 때, 문자열의 띄어쓰기가 그대로 반환되는 점에 미치는 영향

김하밍·2023년 5월 17일

Java

목록 보기
12/46
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 배열에 포함되고, 이를 다시 결합할 때 공백이 삽입되기 때문이다.

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글