문자열을 입력받아서 각 단어의 첫 글자를 대문자로 리턴하는 문제였는데, 연속된 공백이 존재할 수도 있다는 게 포인트였다.
앞서 공부했던 split()
을 사용해서 공백란 기준으로 끊은 다음, 각 인덱스의 charAt(0)
번째 요소를 toUpperCase()
함수를 사용해서 대문자로 바꾸어줬는데 연속된 공백이 존재할 때의 테스트케이스에서 오류가 발생했다 😭
다른 좋은 방법이 없을까 고민하다 구글링을 해봤는데, StringBuilder
와 trim()
함수를 사용하여 작성하는 방법이 있었다. StringBuilder같은 경우는 앞서 공부를 해봤고, trim()에 대해 알아보자면,
trim() : 문자열의 공백을 제거
해주는 함수이다. 주의할 점으로 trim은 맨 왼쪽과 오른쪽의 공백만 제거해주므로, 가운데 공백은 replace()
함수를 통해 제거시켜주면 되겠다.
레퍼런스 코드에서는 내가 처음 생각해낸 방법과 같이 split()
을 사용하였는데, 우선, 자른 배열 중 비어있는 값은 그대로 나오게하고, 단어가 있다면, String.valueOf()
를 통해 자른 첫 문자를 대문자로 바꿔주고 거기다 substring()
으로 뒤쪽부터의 문자들을 더했다.
마지막으로 결과값에 해당 배열을 String.join()
으로 넣어주어 반환시켰다.
join() : 배열의 모든 값들을 연결한 문자열 리턴
※ 인자를 받아 그 인자로 값들 사이사이를 연결해줌