dimanche 26 avril 2015

Erste Schritte Code zur Laufzeit ändern lassen

Hallo,
ich habe eine nette Übungsaufgabe von meinem Professor erhalten, bei der ich HTML Code generieren soll
- genauer gesagt geht es dabei um eine Tabelle.

Code:

package chapter3Statements.ATableOfSquareNumbers;

public class HTMLifyMe {
   
    static String doctype = "http://ift.tt/rO9lWA;;
    static String titlename = "A square table";


    static String table = "table";
    static String title = "title";
    static String html = "html";
    static String xmlns = "xmlns";
    static String body = "body";
    static String style = "style";
    static String textalign = "text-align";
    static String right = "right";
    static String head = "head";


    static String td = "td";
    static String tr = "tr";
    static String th = "th";
    static String n = "n";


    static String empty = " ";
    static String relationop1 = "<";
    static String relationop2 = ">";
    static String slash = "/";
    static String apostrophe = "'";
    static String semicolon = ";";
    static String doublepoint = ":";
    static String equal = "=";
    static String star = "*";


    public static void main(String[] args) {


        int limit=40;
        int outputchanger=0;


        StringBuffer output = new StringBuffer();


       
        head(output);


       
        output.append(relationop1 + tr + relationop2 + "\n");


        output.append(relationop1 + th + relationop2);
        output.append(n);
        output.append(relationop1 + slash + th + relationop2);
       
        output.append(relationop1 + th + relationop2);
        output.append(n + star + n);
        output.append(relationop1 + slash + th + relationop2 + "\n");


        output.append(relationop1 + slash + tr + relationop2 + "\n");


        for (int i = 0; i <= limit; i++) {
           
            output.append(relationop1 + tr + relationop2 + "\n");


            output.append(relationop1 + td + empty + style + equal + apostrophe
                    + textalign + doublepoint + right + semicolon + apostrophe
                    + relationop2);


            outputchanger = inputswitcher(outputchanger, output, i);


            output.append(relationop1 + slash + td + relationop2);


            output.append(relationop1 + slash + td + relationop2 + "\n");


            output.append(relationop1 + slash + tr + relationop2 + "\n");
        }
       
       
        end(output);


        System.out.println(output);


    }


    public static void head(StringBuffer output) {
        output.append(relationop1 + html + relationop2 + "\n");


        output.append(relationop1 + html + empty + xmlns + equal + apostrophe + doctype + apostrophe + relationop2 + "\n");
        output.append(relationop1 + head + relationop2 + "\n");
       
        output.append(relationop1 + title + relationop2);
        output.append(titlename);
        output.append(relationop1 + slash + title + relationop2 + "\n");
       
        output.append(relationop1 + slash + head + relationop2 + "\n");


        output.append(relationop1 + body + relationop2 + "\n");
        output.append(relationop1 + table + relationop2 + "\n");
    }


    public static void end(StringBuffer output) {
        output.append(relationop1 + slash + table + relationop2 + "\n");
        output.append(relationop1 + slash + body + relationop2 + "\n");
        output.append(relationop1 + slash + html + relationop2 + "\n");
    }


    public static int inputswitcher(int outputchanger, StringBuffer output, int i) {
        switch (outputchanger) {
        case 0:
            output.append(n);
            outputchanger=1;
            break;
           
        case 1:
            output.append(n+star+n);
            outputchanger=2;
            break;


        case 2:
            output.append(i);
            outputchanger=3;
            break;
           
        case 3:
            output.append(i * i);
            outputchanger=2;
            break;
        }
        return outputchanger;
    }
}

Ich hatte den Code schon am funktionieren - aber er hat mir einfach vom ästhetischen her nicht gefallen, da ich meiner Meinung nach zuviele Redundanzen im Code hatte.

Z.b. möchte ich das
output.append(relationop1 + slash + td + relationop2);
durch
output.append(relationop1 + slash + th + relationop2);
zur Laufzeit ändern lassen, damit ich den Code nicht redundant einfügen muss
oder ein weiteren String zwischen drin einfügen.

Leider habe ich keine Ahnung wie man das bewerkstelligt.
Hoffe natürlich, das mir jemand von euch helfen kann!

Liebe Grüße


Erste Schritte Code zur Laufzeit ändern lassen

0 commentaires:

Enregistrer un commentaire