我有和平的代码来执行字符串的连接:-
String _ = "Hello ";
String _ = "World";
String _ = " !!";
System.out.println(_+_+_+_+_+_+_);
代码输出为:-
!! !! !! !!Hello World !!
我有几个问题:-
答案 0 :(得分:11)
这只是一个愚蠢的花招:
三个下划线都是不同的字符/字符串,但在人眼中看起来是相同的。
如果您将值打印为字节数组
System.out.println(Arrays.toString("_".getBytes()));
System.out.println(Arrays.toString("_".getBytes()));
System.out.println(Arrays.toString("_".getBytes()));
您将获得输出:
[95, -30, -128, -114]
[95, -30, -128, -113]
[95, -30, -128, -114, -30, -128, -113]
为此,您发布的代码等效于以下内容:
String a = "Hello ";
String b = "World";
String c = " !!";
System.out.println(c+c+c+c+a+b+c);
答案 1 :(得分:0)
严格禁止从Java 9下划线开始(请参见Java 9 documentation)
下划线字符不是合法名称。
如果您使用下划线字符(“ _”)作为标识符,则您的来源 代码无法再编译。
我试图运行它并出现错误。
(在以后的发行版中可能不支持使用'_'作为标识符 Java SE 8)
很显然,如果他们说不使用下划线,那么这背后有一些原因。