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+200EU+200F

可打印字符。它们都是控制字符,它们决定了文本应如何呈现-从左到右或从右到左。

您不会在终端中看到它们,并且它们不应该是等效的字符串。

0x200E ^ 0x200F != 0

以上是 Java字符串中的不可见字符 的全部内容, 来源链接: utcz.com/qa/424492.html

回到顶部