Java : space makes a difference in compilation?

标签 java string

我正在制作一个程序(一种 Piglatin 之类的...),其中我无意中错过了语句中的一个变量:

String a = "R"++'a';

它实际上应该是 String a = "R"+text+'a';。编译器产生错误。但是,当我成功时:

String a = "R"+ +'a';

编译好的程序。

我想知道为什么即使 Java 不关心你是否在某些语句中放置空格,但为什么放置空格会有所不同,例如:String a="ABCD";String a = "ABCD";

有人可以解释一下这种行为吗?

最佳答案

++ 本身就是一个运算符(前增量或后增量)。

将它放在字符串和字 rune 字之间在语法上是无效的。

但是对于 "R"+ +'a',第二个 + 将绑定(bind)到字 rune 字 a 并将充当一元加运算符(此运算符具有非常高的优先级)。这不是空操作:在 Java 中,它具有提升a类型整数。这种类型提升意味着输出将是 R97 而不是 Ra(97 是 a 的 ASCII 码)。剩余的 + 充当字符串连接器。

关于Java : space makes a difference in compilation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134933/

相关文章:

c++ - 你如何循环读取 C++ 套接字?

java - 我看不到类文件

java - 有没有什么方法可以将属性添加到 HTable 而无需先禁用它?

java - 如何用 Java 解析 .eml 文件

正则表达式与小字符串的蛮力

java - 举一个在regex java中使用cyirillic的例子

c# - 谁是所有字符串中最伟大的?

jquery - 在字符串中使用新行 (\n) 并在 HTML 中呈现相同的内容

java - 函数 .contains() 无法按预期方式在 Groovy 中工作

java - 如何处理 RxJava 中观察者的 onNext 抛出的异常?