IT/Programming / / 2023. 4. 19. 10:25

[JAVA] String toLowerCase()

반응형

public String toLowerCase(), public String toUpperCase(Locale locale)

· When you call toLowerCase(), internally toLowerCase(Locale.getDefault()) is getting called. It is locale sensitive and you should not write a logic around it interpreting locale independently.

→ toLowerCase를 사용할 때, 내부적으로는 toLowerCase(Locale.getDefault())를 사용하게 됩니다. 이 Locale은 유동적이며 Locale값을 직접 작성하지 않아도 됩니다.

→ 하지만 여기서 문제가 생기게 됩니다. 한국이나 영어와 같은 경우 소문자 변환을 하여도 크게 상관이 없지만 터키같은 국가에서는 소문자로 변경시 다르게 표시되는 글자가 있습니다.

→ English ' i '

→ Turkish ' ı '

 

· For instance, "TITLE".toLowerCase() in a Turkish locale returns "tıtle", where 'ı' is the LATIN SMALL LETTER DOTLESS I character. To obtain correct results for locale insensitive strings, use toLowerCase(Locale.ENGLISH).

→ 예를 들어, "TITLE".toLowerCase()를 터키언어로 리턴할 경우 "tıtle"와 같은 점이 없는 I 문자로 리턴되게 됩니다. 개발자가 의도한 대로 소문자를 변환하기 위해서는 toLowerCase(Locale.ENGLISH)로 사용해줘야 합니다.

 

Test Code

import java.util.Arrays;
import java.util.List;
import java.util.Locale;

public class CommonTest {
	public static void main(String[] args) {
		String test = "iiiiiiiiiiiiiiiiiiiIIIIIIIIIIIIIIIIIII";
		
		System.out.println(test.toLowerCase(new Locale("tr", "TR")));
		
	}
}
 

Output

iiiiiiiiiiiiiiiiiiiııııııııııııııııııı
 

 

 

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