【发布时间】:2017-10-29 13:00:28
【问题描述】:
当我运行以下程序时,它只打印
equals says they are equal
但是从 java 8 中的 equalsIgnoreCase 文档我们有:
两个字符 c1 和 c2 被认为是相同的忽略大小写,如果 以下至少一项是正确的:
• 应用方法 java.lang.Character.toUpperCase(char) 对每个字符产生相同的结果
public class Test {
public static void main(String[] args) {
String string1 = "abc\u00DF";
String string2 = string1.toUpperCase();
if (string1.equalsIgnoreCase(string2))
System.out.println("equalsIgnoreCase says they are equal");
if (string1.toUpperCase().equals(string2.toUpperCase()))
System.out.println("equals says they are equal");
}
}
所以我的问题是为什么这个程序不打印
equalsIgnoreCase says they are equal
在这两个操作中都使用大写字符。
【问题讨论】:
-
string 1: abcß string 2: ABCSS,总是打印中间步骤或使用调试器查看值
标签: java string locale case-sensitive