この記事では、参照用のJava実装の簡単なテンプレートレンダリングの例を共有しています。特定のコンテンツは次のとおりです
コード
パッケージcom.hdwang; import java.util.hashmap; Import java.util.map;/***は2017/12/19にHdwangによって作成されました。 */public class mytemplate {public static void main(string [] args){string template = "$ {name}、$ {sex}、$ {birthyear}は、$ {graduateyear}で生まれ、$ {大学}を$ {Map}で卒業しました。 map <string、string> params = new Hashmap <>(); params.put( "name"、 "Zhang San"); params.put( "sex"、 "male"); params.put( "birthyear"、 "1990"); params.put( "harduateyear"、 "2012"); params.put( "大学"、 "Tsinghua University"); long start = system.currenttimemillis(); for(int i = 0; i <10000; i ++){string result = render(template、params); if(i == 9999){system.out.println(result); }} long end = system.currenttimemillis(); system.out.println( "cost time:"+(end-start)+"ms"); start = system.currenttimemillis(); for(int i = 0; i <10000; i ++){string result = render2(template、params); if(i == 9999){system.out.println(result); }} end = system.currenttimemillis(); system.out.println( "cost time:"+(end-start)+"ms"); } public static string render(string template、map <string、string> params){//ビルダースプライシングを使用して、文字列追加よりも多くの効率を改善しますstringbuilder builder = new StringBuilder(); //コントロール変数ブール$ begin = falseを定義します。 boolean parambegin = false; // boolean paramend = false; stringbuilder key = null; //(int i = 0; i <template.length(); i ++){char c = template.charat(i); //識別を開始if(c == '$'){$ begin = true; } if($ begin && c == '{'){parambegin = true; builder.deletecharat(builder.length() - 1); //追加された$文字キー= new StringBuilder();続く; } //パラメーターキーif(parambegin && c!= '}'){if(c == '){system.out.println( "テンプレート形式エラー!position:"+i); } else {key.append(c); } 続く; } // end tag if(parambegin && c == '}'){// paramend = true; // parameter key builder.append(paramseg(key.tostring()))に対応する値; //制御変数をリセットします$ begin = false; parambegin = false; // paramend = false;続く; } //デフォルトBuilder.Append(c); //文字を追加} builder.toString()を返します。 } public static string render2(string template、map <string、string> params){for(map.entry <string、string> entry:params.entryset()){string key = entry.getKey(); string value = entry.getValue(); template = template.replace( "$ {"+key+"}"、value); }テンプレートを返します。 }}実行結果
1990年に生まれた男性のチャン・サンは、2012年にティンゥア大学を卒業しました。
コスト時間:65ms
1990年に生まれた男性のチャン・サンは、2012年にティンゥア大学を卒業しました。
コスト時間:161ms
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。