Dieser Artikel teilt Ihnen das Beispiel der Java -Implementierung mit einfachem Vorlage zur Rendern für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Code
Paket com.hdwang; import java.util.hashMap; import Java.util.map;/*** Erstellt von Hdwang am 2017/12/19. */public class mytemplate {public static void main (String [] args) {String template = "$ {name}, $ {sex}, $ {birthyear} wurde in $ {Graduateyear} geboren und studierte $ {University} in $ {map}." Karte <string, string> params = new HashMap <> (); params.put ("name", "zhang san"); params.put ("Sex", "männlich"); params.put ("birthyear", "1990"); params.put ("Graduateyear", "2012"); params.put ("Universität", "Tsinghua University"); Long start = system.currentTimemillis (); für (int i = 0; i <10000; i ++) {String result = Render (Vorlage, Parameter); if (i == 9999) {System.out.println (Ergebnis); }} Long End = System.currentTimemillis (); System.out.println ("Kostenzeit:"+(Endstart)+"MS"); start = system.currentTimemillis (); für (int i = 0; i <10000; i ++) {String result = render2 (Vorlage, Parameter); if (i == 9999) {System.out.println (Ergebnis); }} end = system.currentTimemillis (); System.out.println ("Kostenzeit:"+(Endstart)+"MS"); } public static String Render (String -Vorlage, Karte <String, String> Params) {// Verwenden Sie Builder Spleißen, um eine große Effizienz zu verbessern als String -Additions -StringBuilder builder = new StringBuilder (); // Definieren Sie die Kontrollvariable boolean $ begin = false; boolescher Parambegin = false; // boolean paramend = false; StringBuilder key = null; // Loop -Übereinstimmung für (int i = 0; i <template.length (); i ++) {char c = template.charat (i); // Identifikation starten if (c == '$') {$ begin = true; } if ($ begin && c == '{') {paramBegin = true; Builder.DeletEcharat (builder.length ()-1); // Löschen Sie den hinzugefügten $ charakter key = new StringBuilder (); weitermachen; } // Parameterschlüssel if (paramBegin && c! = '}') {If (c == '{') {System.out.println ("Vorlagenformat -Fehler! Position:"+i); } else {Key.Append (c); } weitermachen; } // End -Tag if (paramBegin && c == '}') {// paramend = true; // der Wert, der dem Parameterschlüssel Builder.Append (params.get (key.toString ()))); // Die Steuervariable $ begin = false zurücksetzen; paramBegin = false; // paramend = false; weitermachen; } // Standard Builder.Append (c); // Zeichen hinzufügen} return Builder.toString (); } public static String render2 (String -Vorlage, MAP <String, String> Params) {for (map.Entry <String, String> Eintrag: paramsSet ()) {String key = Eintrag.getKey (); String value = Eintrag.getValue (); template = template.replace ("$ {"+key+"}", value); } Rückgabevorlage; }}Auslaufergebnisse
Zhang San, männlich, geboren 1990 und absolvierte 2012 die Tsinghua University.
Kostenzeit: 65 ms
Zhang San, männlich, geboren 1990 und absolvierte 2012 die Tsinghua University.
Kostenzeit: 161 ms
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.