반응형
문자열을 다루는 문제를 풀던 도중 알파벳을 모두 대문자로 변환시켜주기 위하여 .toUppercase() 함수를 사용했었습니다.
AndroidStudio로 문제를 풀고있었는데 .toUppercase() 부분에 밑줄이 쳐지길래 확인해보니 deprecated되었다고 합니다.
위의 사진에서 보는 것처럼요! 대신에 uppercase()를 사용하라고 합니다!!! toUpperCase()를 사용해도 정상적으로 대문자로 변환이 정상적으로 동작하는데 왜 굳이 새로운 uppercase()를 사용해야할까요?
아래의 설명을 읽어보면 지역에 따라 약간의 버그가 있다고 합니다.
공식문서에서 설명한 예시를 보면 터키어 로케일에서 i를 toUpperCase()를 사용하여 변환시키면 I가 아닌 İ로 변환된다고 합니다.
하지만 새로나온 uppercase()를 사용하면 지역에 상관없이 대문자로 변환이 됩니다.
uppercase()에 인자로 Locale.getDefault()를 pass한다면 toUppercase()와 동일하게 로케일에 따라 다르게 변환할 수 있습니다.
uppercase()로 toUppercase()를 완전히 대체할 수 있기 때문에 uppercase()를 사용하는 것이 좋다고 합니다.
// toUpperCase() 사용. 지역에 따라 다른 결과가 출력될 수 있음.
println("Kotlin".toUpperCase()) // KOTLIN or KOTLİN or?..
// uppercase() 사용. 무조건 대문자로 출력.
println("Kotlin".uppercase()) // Always KOTLIN
// uppercase()의 인자로 Locale.getDefault()를 주면
// toUpperCase()와 같이 로케일에 따라 변환이 가능
"Kotlin".uppercase(Locale.getDefault()) // Locale-sensitive uppercasing
toLowercase()와 lowercase()의 경우에도 마찬 가지입니다!
아래는 해당 내용이 담긴 공식문서의 링크입니다.
공식문서 : Kotlin 1.5.0-RC 출시: 표준 및 테스트 라이브러리 변경 사항
반응형
'오늘 배운 것[Today_I_Learned]' 카테고리의 다른 글
싱글 스레드와 멀티 스레드의 차이[Kotlin - 코틀린](카운트 다운 + 입/출력 / 구현을 통하여 알아보자!) (0) | 2022.07.30 |
---|---|
코틀린[Kotlin] 문자열 부분추출(subString) 등(toInt, lastIndex) (0) | 2022.05.10 |
PHP <=> 연산자 (spaeceship / 스페이스쉽 연산자) (0) | 2022.04.18 |
PHP strtotime 함수를 사용하여 날짜 계산간 소수점이 출력되는 문제(floor 함수를 이용하여 해결) (0) | 2022.04.12 |
버블 정렬(Bubble Sort) 구현 Python / C++ / JAVA / Kotlin / PHP (0) | 2022.03.24 |
최근댓글