Java字符串中的不可见字符
String a = "Hello\u200e";String b = "Hello\u200f";
System.out.println("a = '" + a + "' and b = '" + b + "' are length "
+ a.length() + " and " + b.length()
+ ", equals() is " + a.equals(b));
上面的代码片段中的代码产生以下输出。
a =’Hello’和b =’Hello’的长度分别为6和6,equals()为false
虽然两者的价值a
,并b
在控制台上显示的是Hello
,a.equals(b)
回报false
。怎么样?
回答:
U+200E
和U+200F
是
可打印字符。它们都是控制字符,它们决定了文本应如何呈现-从左到右或从右到左。
您不会在终端中看到它们,并且它们不应该是等效的字符串。
0x200E ^ 0x200F != 0
以上是 Java字符串中的不可见字符 的全部内容, 来源链接: utcz.com/qa/424492.html