CSCI A201/A597

Lab Notes Sixteen

Second Summer 2000


Remember the after the midterm challenge?

What do you think this program is doing?

class R {
  public static void main(String[] args) {
  String b = "  System.out.println(\"class R {\");\n" +
  "  System.out.println(\"  public static void main(String[] args) {\");\n" +
  "  System.out.print(\"  String b = \\\"\");\n" +
  "  for (int i = 0; i < b.length(); i++) {\n" +
  "    char c = b.charAt(i);\n" +
  "    if (c == '\\n') System.out.print(\"\\\\n\\\" + \\n  \\\"\");\n" + 
  "    else { if (c == '\\\\' || c == '\\\"')\n" + 
  "             System.out.print('\\\\');\n" +
  "           System.out.print(c);\n" +
  "    }\n" +
  "  }\n" +
  "  System.out.print(\"\\\";\\n\");\n" + 
  "  System.out.println(b + \" }\\n}\");";
  System.out.println("class R {"); 
  System.out.println("  public static void main(String[] args) {");
  System.out.print("  String b = \"");
  for (int i = 0; i < b.length(); i++) {
    char c = b.charAt(i); 
    if (c == '\n') System.out.print("\\n\" + \n  \""); 
    else { if (c == '\\' || c == '\"') 
             System.out.print('\\'); 
           System.out.print(c); 
    }
  }
  System.out.print("\";\n"); 
  System.out.print(b + "\n }\n}");
  }
}

Can you write a shorter one?


Last updated: August 10, 2000 by Adrian German for A201