본문 바로가기
프로그래밍/Android

[Android] toUpperCase() 경고메시지

by Youngs_ 2022. 5. 3.
Implicitly using the default locale is a common source of bugs: Use toLowerCase(Locale) instead For strings meant to be internal use Locale.ROOT, otherwise Locale.getDefault().

 

변수.toUpperCase()를 사용하다 보면 위와같은 경고가 나올때가 있다 에러가 아니라 경고 메시지라 실행은 제대로 되지만 찝찝해서 해당 방법의 원인을 검색 해보았다.

변수.toLowerCase(Locale.US) 와 같은 형식으로 사용하면 해당 경고가 사라진다.
-> 혹은 변수.toLowerCase(Locale.US)

원인은 기본 로케일을 사용하게 되면, 사용자 지역의 기본 언어기반으로 소문자 변환이 되는데, 일부 언어에서는 의도한대로 변경이 되지 않기 때문이다. (터키문자에선 i - I  관계가 아니라고 한다). 그래서, ASCII기반 문자를 바꾸고 싶을 때는 명시적으로 US 로케일을 지정하면 된다.

댓글