1 Temmuz 2008 Salı

Java toUpperCase toLowerCase

String.toLowerCase ve String.toUpperCase metotlarını direkt kullanmak bazı problemler yaratabiliyor. Mesela i harfi, sistemdeki ön seçili dile bağlı olarak büyük harfe İ veya I olarak çevrilebiliyor. Bunu çözmek için bu metodlara Locale'i argüman olarak vermek gerekiyor.


// Sistemdeki default seçili dil ne ise ona göre büyük harfe çevrilir.
"illaki".toUpperCase();

// İngilizceye göre büyük harfe çevrilir, bu durumda i->I çevrimi yapılacaktır
"illaki".toUpperCase( Locale.ENGLISH );

// Türkçeye göre çeviri yapılır, bu durumda i->İ çevrimi yapılır.
"illaki".toUpperCase( new Locale("tr","TR") );


Sistemdeki seçili dili değiştirmek için ise aşağıdaki kod satırı kullanılabilir:

Locale.setDefault(new Locale("tr","TR"));


Java Doc'ta toUppercase methodu için şöyle bir açıklama yazılmış:


Converts all of the characters in this String to upper case using the rules of the default locale. This method is equivalent to toUpperCase(Locale.getDefault()).

Note: This method is locale sensitive, and may produce unexpected results if used for strings that are intended to be interpreted locale independently. Examples are programming language identifiers, protocol keys, and HTML tags. For instance, "title".toUpperCase() in a Turkish locale returns "T?TLE", where '?' is the LATIN CAPITAL LETTER I WITH DOT ABOVE character. To obtain correct results for locale insensitive strings, use toUpperCase(Locale.ENGLISH).

2 yorum:

low_voltage dedi ki...

bu pratik bilgi için teşekkürler.

tt dedi ki...

Teşekkürler.