Rumah  >  Artikel  >  Java  >  Apakah isu yang perlu diberi perhatian apabila menggunakan MessageFormat dalam Java?

Apakah isu yang perlu diberi perhatian apabila menggunakan MessageFormat dalam Java?

WBOY
WBOYke hadapan
2023-04-22 20:31:061143semak imbas

Menyelesaikan masalah

Setelah melihatnya sebentar, saya masih tidak tahu Pada masa ini, saya mula panik. Saya cepat-cepat melihat rekod penyerahan dan mengesahkan bahawa kod itu tidak ditulis oleh saya, jadi saya berasa lebih tenang jika orang lain bertanya, mudah untuk mengatakan bahawa ia bukan ditulis oleh saya! Walaupun saya tidak menulis kod, saya masih perlu melihat masalahnya. Lagipun, selepas anda mendapat wang, anda perlu bekerja.

Langkah seterusnya ialah menganalisis kod. Pertama, kami menganalisis ralat yang paling mungkin, iaitu menghuraikan logik tindak balas pertanyaan arahan. Menganalisis kod di tempat ini bersama-sama dengan hasil yang diperoleh dengan melaksanakan arahan secara manual, kami mendapati bahawa hasil tindak balas boleh diperoleh secara normal berdasarkan hasil tindak balas ini. Selepas melihatnya untuk beberapa ketika, saya tidak mendapati masalah. Kemudian saya melihat kod penyambungan perintah Logik penyambungan hanya satu baris, jadi tidak ada masalah. Saya tidak mempunyai pilihan selain melihat log semula. Kali ini saya mendapati bahawa terdapat arahan untuk mencetak, menghantar dan melaksanakan dalam log. Melihat lebih dekat, saya tertanya-tanya, mengapa ada koma tambahan? Dia menggosok cermin matanya sekali lagi untuk memastikan dia melihat dengan betul.

Pada masa ini, saya akan kembali dan melihat kod itu Tidak kira bagaimana saya melihat ini MessageFormat, ada sesuatu yang salah, tetapi saya tidak dapat mencari sebarang bukti buat masa ini.

public Integer getMaxIndex() {
    // 返回最大的索引值 1035
}
public String queyBySsh() {
    //  这里期望拼接的命令是 show index 1035,但是实际的命令却是 show index 1,035
    // 最终得到的命令多了个英文的逗号 
    String command = MessageFormat("show index {0}", getMaxIndex());
    // 通过SSH执行这个命令查询
}

Kemudian tiba-tiba saya teringat sebuah Wiki yang pernah saya lihat sebelum ini, yang nampaknya mempunyai nota tentang menerangkan MessageFormat . Saya cepat-cepat mencarinya dan melihatnya. Sudah tentu, ia telah ditulis bahawa apabila parameter MessageFormat ialah jenis angka, apabila nombor itu melebihi 3 digit, koma tambahan akan ditambahkan untuk setiap 3 digit. Oleh itu, mengikut logik kod di atas, apa yang kami dapat ialah show index 1,035 Terdapat koma bahasa Inggeris tambahan dalam hasilnya, dan data tidak boleh ditemui dengan melaksanakan perintah yang disambung secara manual. Kes itu akhirnya selesai, sebarkan bunga, sebarkan bunga, sebarkan bunga! ! !

Cara menyelesaikan

Kaedah pertama ialah menukar nombor kepada rentetan dan kemudian memformatkannya kepada yang berikut:

public String queyBySsh() {
    // 这里拼接的时候先调用一下 String.valueOf() 方法
    String command = MessageFormat("show index {0}", String.valueOf(getMaxIndex()));
}

Tidak. Kaedah kedua ialah menambah MessageFormat pada FormatStyle, dan untuk mengubah suai kod di atas seperti berikut:

public String queyBySsh() {
    // 这里的 # 就是定义的 FamatStyle
    String command = MessageFormat("show index {0, number, #}", getMaxIndex());
}

Atas ialah kandungan terperinci Apakah isu yang perlu diberi perhatian apabila menggunakan MessageFormat dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam