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 クラスを明示的に使用せずに、プラス演算子の解釈を文字列連結として強制することは可能でしょうか?