Javaで次のコードスニペットを見てください。
final public class Main
{
public static void main(String[] args)
{
Locale.setDefault(new Locale("lt"));
String str = "\u00cc"; //setting Lithuanian as locale
System.out.println("Before case conversion is "+str+" and length is "+str.length());// Ì
String lowerCaseStr = str.toLowerCase();
System.out.println("Lower case is "+lowerCaseStr+" and length is "+lowerCaseStr.length());// i?`
}
}
次の出力が表示されます。
ケース変換前はÌ、長さは1
小文字はī̀、長さは3
最初のSystem.out.println()
ステートメントでは、結果は正確です。ただし、2番目のステートメントでは、実際には1であるはずの長さ3が表示されます。分かりません、なぜですか?