Artikel ini berbagi dengan Anda contoh rendering template sederhana implementasi Java untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Kode
Paket com.hdwang; import java.util.hashmap; import java.util.map;/*** dibuat oleh hdwang pada 2017/12/19. */kelas publik myTemplate {public static void main (string [] args) {string template = "$ {name}, $ {sex}, $ {bilyaryear} lahir di $ {graduateyear}, dan lulus dari $ {universitas} dalam $ {peta}."; Peta <string, string> params = new HashMap <> (); params.put ("name", "Zhang San"); params.put ("seks", "pria"); params.put ("lahir", "1990"); params.put ("lulusanyear", "2012"); params.put ("universitas", "Universitas Tsinghua"); Long Start = System.CurrentTimeMillis (); untuk (int i = 0; i <10000; i ++) {string result = render (template, params); if (i == 9999) {System.out.println (hasil); }} long end = System.currentTimeMillis (); System.out.println ("waktu biaya:"+(end-start)+"ms"); start = system.currentTimeMillis (); untuk (int i = 0; i <10000; i ++) {hasil string = render2 (template, params); if (i == 9999) {System.out.println (hasil); }} end = System.currentTimeMillis (); System.out.println ("waktu biaya:"+(end-start)+"ms"); } public static string render (string template, peta <string, string> params) {// Gunakan splicing builder untuk meningkatkan banyak efisiensi daripada string penambahan stringbuilder builder = new stringBuilder (); // Tentukan variabel kontrol boolean $ begin = false; boolean parambegin = false; // boolean paramend = false; Key StringBuilder = null; // Loop cocok untuk (int i = 0; i <template.length (); i ++) {char c = template.charat (i); // Mulai identifikasi jika (c == '$') {$ begin = true; } if ($ begin && c == '{') {parambegin = true; builder.deletecharat (builder.length ()-1); // hapus tombol karakter yang ditambahkan = stringBuilder baru (); melanjutkan; } // tombol parameter if (parambegin && c! = '}') {If (c == '{') {System.out.println ("Kesalahan format template! Posisi:"+i); } else {key.append (c); } melanjutkan; } // tag end if (parambegin && c == '}') {// paramend = true; // Nilai yang sesuai dengan parameter kunci pembangun.append (params.get (key.toString ())); // Setel ulang variabel kontrol $ begin = false; parambegin = false; // paramend = false; melanjutkan; } // Default Builder.Append (c); // tambahkan karakter} return builder.toString (); } public static string render2 (string template, peta <string, string> params) {for (map.entry <string, string> entri: params.entryset ()) {string key = entry.getKey (); Nilai string = entry.getValue (); template = template.replace ("$ {"+key+"}", nilai); } return template; }}Hasil berjalan
Zhang San, pria, lahir pada tahun 1990, lulus dari Universitas Tsinghua pada 2012.
Waktu Biaya: 65ms
Zhang San, pria, lahir pada tahun 1990, lulus dari Universitas Tsinghua pada 2012.
Waktu Biaya: 161ms
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.