실수는 저의몫 여러분은 꽃길만 걸으세요ㅠㅠ
예제부터 한번 볼까요?
아래와 같은 URL이 있습니다.
http://www.example.com/dog/profile?name=Shapperd
여기서 "?" 앞부분만 가져오려고 split을 자바에서 구현하면?
String url = "http://example.com/dog/profile?name=jindo";
String[] urlParts = uri.split("\\?")
urlParts에는 ["www.example.com/dog/profile", "name="jindo"] 가 들어있습니다.
인텔리제이에는 자바코드를 붙여넣기 하면, 코틀린으로 자동으로 바꿔주는 로직이 있지요. 위코드를 붙여넣기 하면 아래와 같이 들어갑니다.
val parts = uri.split("\\?").toTypedArray()
parts에는 urlParts와 같이 들어갔을까요?
정답은?
.
.
.
삐빅! ?를 인식하지 못합니다.
parts에는 ["www.example.com/dog/profile?name=jindo"] 이렇게 들어갈 뿐이예요.
그럼 어떻게 하면 될까요?
val parts = uri.split("?").toTypedArray()
읭?
물음표만 들어갑니다.
왜 그럴까요?
자바와 코틀린에서 String에서 split의 메서드 시그네이처가 다르기 때문입니다. 자바의 첫번째 인자는 정규표현식이라 이스케이프 문자 "\"가 필요하지만, 코틀린은 그냥 delimeter로 인식하기 때문인데요. 오히려 자바에서의 어색함을 해결했다고 볼 수 있습니다. 정규 표현식은 필요할때 쓰는게 자연스럽죠.
코틀린이 좀더 직관적으로 느껴지네요.
split 메서드 오늘 하나 제대로 아셨죠? ^^
'핵꿀팁' 카테고리의 다른 글
Kotlin에서 웹페이지를 가져오는 간단한 방법! (0) | 2020.05.12 |
---|---|
애플2 컴퓨터를 내책상에! (0) | 2020.05.11 |
구매를 결정하는 2개의 목소리 (0) | 2020.05.04 |
공적마스크 대리구매 방법 (0) | 2020.04.29 |