带有_ named的java中的字符串声明

Has*_*hra 0 java

我有和平的代码谁做串的连接: -

String _? = "Hello ";
String _? = "World";
String _?? = " !!";
System.out.println(_??+_??+_??+_??+_?+_?+_??);
Run Code Online (Sandbox Code Playgroud)

代码的输出是: -

!! !! !! !!Hello World !!
Run Code Online (Sandbox Code Playgroud)

我有几个问题: -

  1. 我们如何声明相同的命名变量(_)
  2. 如何计算输出

OH *_*ERS 12

这只是一个愚蠢的噱头:

三个下划线都是不同的字符/字符串,但看起来与人眼相同.

如果您将值打印为bytearray

System.out.println(Arrays.toString("_?".getBytes()));
System.out.println(Arrays.toString("_?".getBytes()));
System.out.println(Arrays.toString("_??".getBytes()));
Run Code Online (Sandbox Code Playgroud)

你会得到输出:

[95, -30, -128, -114]
[95, -30, -128, -113]
[95, -30, -128, -114, -30, -128, -113]
Run Code Online (Sandbox Code Playgroud)

您发布的代码相当于以下内容:

String a = "Hello ";
String b = "World";
String c = " !!";
System.out.println(c+c+c+c+a+b+c);
Run Code Online (Sandbox Code Playgroud)

  • @HasnainAliBohra - 你还想要什么?它们是不同的字符,就像`a`,`b`和`c`被用作变量名而不是`_`,`_`和`_`. (5认同)
  • 或者更确切地说,`\ u200e`(从左到右标记)和`\ u200f`(从右到左标记)是java中有效的标识符部分字符不打印:第一个变量相当于`"_\u200e" `,第二个``_\u200f``和第三个``_\u200e\u200f"`.请注意,`\ u200d`(0-width-joiner)也应该有效. (2认同)