Sebenarnya, tidak ada konten teknis, karena saya tidak dapat mengingatnya, jadi saya akan merekamnya di artikel ini.
Biasanya, ada banyak pesan SMS dalam sistem aplikasi kami, atau pesan push, dll., Tetapi pesan -pesan ini memiliki kesamaan yang sama, seperti hanya mengubah nama pengguna.
Seperti yang di bawah ini, kecuali untuk font merah, sisanya sama.
Pelanggan yang Terhormat: Akun Alipay Anda 110 **** 11 Pinjaman Pedagang Online yang Dikontrak Harus Dibayar 1999.99 Yuan pada 2018-06-10. Sistem akan secara otomatis mengurangi saldo akun Alipay, kartu penghematan terikat, Yu'ebao, rekening penyelesaian bank pengumuman Anda dan Yu'ebao (jika ada) pada 2018-06-10. Karena batas terbatas pada pembayaran pinjaman saldo dan penghematan, harap beri prioritas untuk memastikan bahwa saldo Yu'ebao, rekening penyelesaian bank pengumuman, dan Yu'ebao sudah cukup. (Jika Anda sudah membalas, abaikan informasi ini) [Bank Anti-Commerce]
Siswa yang berbeda mungkin memiliki solusi yang berbeda. Inilah solusi saya untuk referensi Anda. Tentu saja, jika ada solusi yang lebih baik, Anda dapat membagikannya ~
Solusi 1: Mode Kode Keras
Dapat dimodelkan dalam kode, atau dibaca di file konfigurasi. Siswa yang memiliki pengalaman pengkodean harus menulis
Keuntungan: Konten pesan intuitif dan konten pesan teks dapat secara langsung dimodifikasi dalam kode
Kerugian: Kode ini berlebihan dan tidak ringkas, dan kode keras menyebabkan server akan dimulai ulang karena kebutuhan yang tak terhindarkan untuk memodifikasi konten pesan.
Solusi 2: Simpan di database
Simpan template pesan umum di server dan baca dan piratkan langsung dari database saat dibutuhkan.
Analisis setelah membaca diyakini seribu orang dan metode, masing -masing dengan solusi sendiri, dan masing -masing dengan kelebihan dan kekurangannya sendiri.
Di sini saya menggunakan metode MessageFormat.format dalam java.text包, yang dapat dengan mudah mencocokkan dan menguraikan pesan template kami.
Pengantar Metode MessageFormat
MessageFormat digunakan untuk memformat pesan, biasanya string, seperti:
String str = "I'm Not a {0}, usia adalah {1, angka, pendek}, tinggi {2, angka,#.#}";MessageFormat dapat memformat pesan tersebut dan kemudian memasukkan string yang diformat ke posisi yang sesuai dalam pola, seperti:
Ganti {0} di str dengan "babi", {1, angka, pendek} dengan angka 8, dan {2, angka,#.#} Dengan angka 1.2.
Lalu apa yang didapat pengguna akhir adalah string yang diformat "Saya bukan babi, usia adalah 8, tinggi adalah 1.2".
MessageFormat itu sendiri tidak terkait dengan lokal, tetapi dengan mode yang disediakan oleh pengguna untuk MessageFormat dan pola subformat untuk parameter yang dimasukkan untuk menghasilkan pesan yang cocok untuk daerah yang berbeda.
Mode MessageFormat (Bagian Utama):
Formatelement:
{ArgumentIndex}
{ArgumentIndex, formatType}
{ArgumentIndex, formatType, formatStyle}
Formattype:
nomor
tanggal
waktu
Pilihan (membutuhkan choiceformat)
FormatStyle:
Pendek
sedang
panjang
penuh
bilangan bulat
mata uang
persen
Subformatpattern
Ambil STR sebagai contoh, dalam string ini:
1. {0} dan {1, angka, pendek} dan {2, angka,#.#}; Keduanya termasuk dalam format, 0,1,2 adalah argumentIndex.
2. Angka dalam {1, angka, pendek} milik formattype, sedangkan pendek milik formatStyle.
3.#.#Dalam {1, nomor,#.#} Milik mode subformat.
Menentukan FormatType dan FormatStyle adalah untuk menghasilkan nilai format tanggal, jumlah presisi yang berbeda, jenis persentase, dll.
Contoh:
1. ArgumentIndex harus menjadi bilangan bulat non-negatif. Jumlahnya tidak terbatas pada 10 dari 0 hingga 9. Ini dapat terdiri dari angka dari 0 hingga 9, sehingga bisa ada banyak, seperti:
String pig = "{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16}; Objek [] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: ABCDEFGHIJKLMNOPQ
2. Saat memformat string, hanya dua kutipan tunggal yang mewakili satu kutipan, dan satu kutipan tunggal akan dihilangkan, seperti:
String message = "oh, {0} adalah 'a' babi"; Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: oh, ZhangSan is a pig
Tambahkan satu kutipan ke huruf A, seperti:
String message = "oh, {0} adalah '' a '' babi"; Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: oh, ZhangSan is 'a' pig
3. Kutipan tunggal akan menjaga karakter atau string otentik.
Oleh karena itu, jika tidak ada persyaratan khusus, kutipan tunggal harus dihapus sebelum pemformatan formal, jika tidak masalah yang tidak perlu akan disebabkan, seperti:
String message = "oh, '{0}' adalah babi"; Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai);Hasil akhirnya adalah: oh, {0} adalah 'a' babi, zhangsan tidak dapat ditampilkan di sini.
Misalnya, menggunakan pola subformat, ada kutipan tunggal tambahan:
String message = "oh, '{0, number,#.#} Adalah babi"; Objek [] array = objek baru [] {double baru (3.1415)}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: oh, {0,number,#.#} is 'a' pig。
Jika seperti ini, itu dapat ditampilkan dengan benar.
String message = "oh, {0, number,#.#} Adalah babi"; Objek [] array = objek baru [] {double baru (3.1415)}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: oh, 3.1 is a pig
3. Apakah itu string yang dikutip atau string yang tidak dikutip, penjepit keriting kiri tidak didukung, tetapi penjepit keriting kanan didukung, seperti:
String message = "oh, {adalah babi"; Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah:异常java.lang.IllegalArgumentException: Unmatched braces in the pattern
Penjepit yang tepat dapat ditampilkan, seperti:
String message = "oh,} adalah babi"; Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (pesan, array); System.out.println (nilai); Hasil akhirnya adalah: oh, } is a pig
Tentang Metode MessageFormat.Format:
Setiap kali metode MessageFormat.Format dipanggil, contoh MessageFormat akan dibuat, yang setara dengan MessageFormat hanya digunakan sekali. Metode format kelas MessageFormat adalah sebagai berikut:
format string statis publik (pola string, objek ... argumen) {messageFormat temp = new MessageFormat (pola); return temp.format (argumen); }Jika Anda ingin menggunakan kembali instance MessageFormat, Anda dapat menggunakan metode berikut:
String message = "oh, {0} adalah babi"; MessageFormat MessageFormat = MessageFormat baru (pesan); Objek [] array = objek baru [] {"zhangsan"}; Nilai String = MessageFormat.Format (array); System.out.println (nilai); Hasil akhirnya adalah: oh, ZhangSan is a pig
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.