String.equals比较无法匹配

rin*_*maz 0 java string string-comparison

我在下面.equals用于String比较,但x不匹配"OU":

String memberOfValue="CN=cn,?OU=ou,?OU=roles,?OU=de,?OU=apps,?DC=meta,?DC=cc,?DC=com";
String[] pairs = memberOfValue.split(",");
for (int i=0;i<pairs.length;i++) {
    String pair = pairs[i];
    String[] keyValue = pair.split("=");
    System.out.println(keyValue[0]);
    String x = keyValue[0];
    String y = "OU";
    System.out.println(x);
    System.out.println(x.equals(y));
}
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

JB *_*zet 6

添加这两行代码会显示问题:

System.out.println("x: " + x + " - " + x.chars().boxed().collect(Collectors.toList()));
System.out.println("y: " + y + " - " + y.chars().boxed().collect(Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)

它给

x: ?OU - [8203, 79, 85]
y: OU - [79, 85]
Run Code Online (Sandbox Code Playgroud)

这表明您的字符串中有一些不可见的char,其整数值为8203(零宽度空间,请参阅什么是HTML字符代码8203?).不知道你是怎么做到的.