Взгляните на следующий фрагмент кода на 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
Нижний регистр - i̇̀, длина - 3.
В первом операторе System.out.println() результат точный. Однако во втором операторе отображается длина 3, которая на самом деле должна была быть 1. Я не понимаю, почему?
lowerCaseStrкак шестнадцатеричное число. - person Mark Ransom   schedule 12.12.2011