是否有两个大写字母的大写字母?

问题描述 投票:1回答:1

ch1ch2ch1 <> ch2以及ch1ch2是否有两个小写字母,其中uppercase(ch1) == uppercase(ch2)? Unicode中实际上有这样的字符吗?

一个后续问题是:对于任何ch是小写字母的情况,以下表达式是否始终为真?

ch == lowercase(uppercase(ch))
unicode uppercase lowercase
1个回答
0
投票

在Java中进行了快速测试:

public static void main(String[] args) {
    for (char ch1 = 0; ch1 < 65534; ch1++) {
        if (!isLetter(ch1) || !isLowerCase(ch1)) {
            continue;
        }
        String s1 = "" + ch1;
        for (char ch2 = (char) (ch1 + 1); ch2 < 65535; ch2++) {
            if (!isLetter(ch2) || !isLowerCase(ch2)) {
                continue;
            }
            String s2 = "" + ch2;
            if (s1.toUpperCase(Locale.US).equals(s2.toUpperCase(Locale.US))) {
                System.out.println("ch1=" + ch1 + " (" + (int) ch1 + "), ch2=" + ch2 + " (" + (int) ch2 + ")");
            }
        }
    }
}

它打印:

ch1=i (105), ch2=ı (305)
ch1=s (115), ch2=ſ (383)
ch1=µ (181), ch2=μ (956)
ch1=ΐ (912), ch2=ΐ (8147)
ch1=ΰ (944), ch2=ΰ (8163)
ch1=β (946), ch2=ϐ (976)
ch1=ε (949), ch2=ϵ (1013)
ch1=θ (952), ch2=ϑ (977)
ch1=ι (953), ch2=ι (8126)
ch1=κ (954), ch2=ϰ (1008)
ch1=π (960), ch2=ϖ (982)
ch1=ρ (961), ch2=ϱ (1009)
ch1=ς (962), ch2=σ (963)
ch1=φ (966), ch2=ϕ (981)
ch1=в (1074), ch2=ᲀ (7296)
ch1=д (1076), ch2=ᲁ (7297)
ch1=о (1086), ch2=ᲂ (7298)
ch1=с (1089), ch2=ᲃ (7299)
ch1=т (1090), ch2=ᲄ (7300)
ch1=т (1090), ch2=ᲅ (7301)
ch1=ъ (1098), ch2=ᲆ (7302)
ch1=ѣ (1123), ch2=ᲇ (7303)
ch1=ᲄ (7300), ch2=ᲅ (7301)
ch1=ᲈ (7304), ch2=ꙋ (42571)
ch1=ṡ (7777), ch2=ẛ (7835)
ch1=ſt (64261), ch2=st (64262)

所以答案是:是的,有不同的字符具有相同的大写表示形式。

© www.soinside.com 2019 - 2024. All rights reserved.