打印自身的程序

在网上看到了一篇C实现的类似程序:

 

 

  1. #include <stdio.h> 
  2. int main() { char *s = "#include <stdio.h>%cint main() { char *s = %c%s%c; printf( s, 10, 34, s, 34 ); return 0; }"; printf( s, 10, 34, s, 34 ); return 0; } 
 
首先写一个串,在串中留出自身的位置a;
其次使用printf函数首先打印a之前的部分,再打印a,最后打印a后面的部分即可。
 
自己写了一行类似的Java代码,但是\"的转义没有解决。

 

 

  1. public class PrintSelf{public static void main(String[] args) {String s="public class PrintSelf{public static void main(String[] args) {String s=\"\";System.out.println(s.substring(0,72)+s+s.substring(76,137));}}";System.out.println(s.substring(0,73)+s+s.substring(73,137));}}