是否有一个Unicode字符串,当转换为小写时会变长?

时间:2015-02-23 21:29:37

标签: string unicode

当转换为大写字母时,字符串'ß'变得更长(在Unicode代码点中测量)(它变为'SS')。

是否有类似的字符串在转换为小写时会变长?

2 个答案:

答案 0 :(得分:2)

http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt

这里有一些字符必须用多个字节处理。这些似乎主要涉及字母I和J的溺爱。

答案 1 :(得分:0)

如果我已经正确理解,这个Java会在大写版本比原始版本更长时找到

for (char chr = 0; chr < Character.MAX_VALUE; chr++) {
    String str = String.valueOf(chr);
    String upper = str.toUpperCase();
    if (upper.length() > 1) {
        System.out.println(String.format("%s => %s (%d)", str,
                Arrays.toString(upper.toCharArray()), upper.length()));
    }
}

输出的内容与您的原始示例相同

ß => [S, S] (2)
ʼn => [ʼ, N] (2)
ǰ => [J, ̌] (2)
ΐ => [Ι, ̈, ́] (3)

如果我将其更改为toLowerCase(),则只有一个结果

İ => [i, ̇] (2)