Search

String.split(”.”)의 문제

태그
Java
String
split()
생성 일시
2023/12/25 08:15
해결여부
해결

Description

개인정보 수집 유효기간 문제를 푸는 와중에 date를 문자열로 받아오고 해당 문자열을 “.”을 기준으로 나누어서
문자열 배열에 넣기 위해 split 메서드를 사용했다.
하지만 split메서드의 문제가 생기거나 하지 않았지만 제대로 문자열 배열에 들어가지 않는 상태가 지속되었다.
// 예시 dates = "2023.12.25"; String[] dates = date.split(".");
Java
복사

Try

Solution

문자열의 split 메서드는 정규 표현식을 기반으로 문자열을 분리합니다. 그런데 .은 정규 표현식에서 특별한 의미를 가지는 메타 문자입니다. 이 메타 문자는 임의의 문자 하나를 의미합니다. 따라서 split(".")은 모든 위치에서 문자열을 분리하려고 시도하므로, 원하는 결과를 얻지 못하게 됩니다.
.을 리터럴 문자로 처리하고 싶다면 이스케이프 문자인 \\를 사용해서 \\.으로 표현해야 합니다. 이렇게 하면 . 문자 자체를 의미하게 됩니다.
따라서 코드를 다음과 같이 수정해야 합니다:
String[] dates = date.split("\\.");
Java
복사
이렇게 수정하면 . (점)을 기준으로 문자열이 제대로 분리됩니다.