Best of Internet © Oliver Schade
URL: http://internet.ls-la.net/
   
 
<-- Prev     Back to Chapter Homepage
 
   
  Java-selfprinting programs  
 

Dario Dariol <dadilala@tqs.it> - 443 characters

import java.text.*;
class a{public static void main(String x[])
  {char b[]={34};char c[]={123};
   String s[]=new String[3];
   s[0]="import java.text.*;class a{2}public static
   void main(String x[]){2}char b[]={2}34};char c[]={2}123};
   String s[]=new String[3];s[0]={1}{0}{1};
   s[1]=new String(b); s[2]=new String(c);
   System.out.println(MessageFormat.format(s[0],s));}}";
   s[1]=new String(b);
   s[2]=new String(c);System.out.println(MessageFormat.format(s[0],s));}}

Andy Kurnia <andykurn@comp.nus.edu.sg> - 239 characters

class Q{static void main(String[]a)
  {char q=34;String t="class Q{static void main(String[]a)
  {char q=34;String t=;System.out.println(t.substring(0,55)+q+t+q+
   t.substring(55));}}";
  System.out.println(t.substring(0,55)+q+t+q+t.substring(55));}}

Doug Orleans <dougo@ccs.neu.edu> - 331 characters

class S{public static void main(String[]a)
 {new S().p('"',"'","
 class S{public static void main(String[]a)
 {new S().p('",");}
 void p(char d,String q,String a,String b)
 {System.out.println(a+d+q+','+d+q+d+','+d+a+d+','+d+b+d+b);}}");}
 void p(char d,String q,String a,
 String b){System.out.println(a+d+q+','+d+q+d+','+d+a+d+','+d+b+d+b);}}

Doug Orleans <dougo@ccs.neu.edu> - 344 characters

class S{static char q='"';static String s="class S
 {static char q='';static String s=;
  public static void main(String[]a)
  {StringBuffer b=new
   StringBuffer(s);b.insert(41,q+s+q);b.insert(23,q);
   System.out.println(b);}}";
   public static void main(String[]a)
   {StringBuffer b=new StringBuffer(s);b.insert(41,q+s+q);b.insert(23,q);
    System.out.println(b);}} 

Masahiro Sekiguchi <seki@sysrap.cs.fujitsu.co.jp> - 250 characters (236 with removing 'public')

class P{public static void main(String[]a)
 {char d=34,e=39;
  String t="+d+t;System.out.println(t+d+';t='+d+t.replace(e,d));}}";
  t="class P{public static void main(String[]a)
  {char d=34,e=39;String t="+d+t;System.out.println(t+d+";
   t="+d+t.replace(e,d));}}

Contributed by Stefan Plantikow <plantiko@informatik.hu-berlin.de>
 
  © Oliver Schade <os@ls-la.net>
Last modified: Mon Jul 31 18:51:11 CEST 2000