打印自身的程序
在网上看到了一篇C实现的类似程序:
- #include <stdio.h>
- 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代码,但是\"的转义没有解决。
- 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));}}
转载于:https://blog.51cto.com/asombroso/1174154