繁体   English   中英

Java中以_命名的字符串声明

[英]String declaration in java with _ named

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

String _‎ = "Hello ";
String _‏ = "World";
String _‎‏ = " !!";
System.out.println(_‎‏+_‎‏+_‎‏+_‎‏+_‎+_‏+_‎‏);

代码的输出是:

!! !! !! !!Hello World !!

我有几个问题:

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

这只是一个愚蠢的花招:

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

如果您将值打印为字节数组

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);

严格禁止从Java 9下划线开始(请参阅Java 9文档

下划线字符不是合法名称。

如果使用下划线字符(“ _”)标识符,则无法再编译源代码。

我试图运行此程序并出现错误。

(在Java SE 8之后的版本中可能不支持将'_'用作标识符)

从现在开始不要使用下划线。

显然,如果他们说不使用下划线,那么这背后有一些原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM