반응형

문자열을 다루는 문제를 풀던 도중 알파벳을 모두 대문자로 변환시켜주기 위하여 .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 출시: 표준 및 테스트 라이브러리 변경 사항

 

Kotlin 1.5.0-RC 출시: 표준 및 테스트 라이브러리 변경 사항 | The Kotlin Blog

Kotlin 1.5.0-RC는 1.5.0에 계획된 모든 기능과 함께 사용할 수 있습니다. 향후 릴리스의 전체 내용을 확인하세요! 새로운 언어 기능, stdlib 업데이트, 향상된 테스트 라이브러리 등 다양한 변경 사항이

blog.jetbrains.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기