在用 Java 编写 Quine(即自我复制程序)时,我尝试使用制表符缩进输出行:
...
char tab = '\t';
char qm = 34;
char comma = ',';
...
System.out.println(tab + tab + tab + qm + listing[i] + qm + comma);
...
这不起作用,因为“tab + tab + ...”中的加号运算符会添加制表符值而不是生成字符串 (61 = 9 + 9 + 9 + 34):
...
61 public static void main(String[] args) {",
...
在开头放置一个空字符串可以完成这项工作:
...
System.out.println("" + tab + tab + tab + qm + listing[i] + qm + comma);
...
但是,我不能在 Quine 设置中使用纯引号,因为我需要转义它们以输出程序文本本身。
我想知道是否可以在不明确使用引号或其他 Java 类的情况下强制将加号运算符解释为字符串连接?