ホームページ >Java >&#&チュートリアル >Java で MessageFormat を使用する場合、どのような問題に注意する必要がありますか?
しばらく調べても何もわからず、この時点でパニックになり始めました。すぐに提出記録を見て、自分が書いたコードではないことを確認したので、少し気持ちが落ち着きましたが、他人に聞かれたら、「自分が書いたものではない!」と言うのは簡単です。私はコードを書きませんでしたが、それでも問題を確認する必要があります。結局のところ、お金を手に入れたら、働かなければなりません。
次のステップはコードを分析することです。まず、最も可能性の高いエラー、つまりコマンド クエリの応答ロジックの解析を分析しました。ここのコードを手動でコマンドを実行した結果と合わせて解析したところ、この応答結果から正常に応答結果が得られることが分かりました。しばらく見て問題がなかったので、コマンドの結合コードを見てみると、結合ロジックは1行だけなので問題ないはずです。仕方なく再度ログを見てみると、今度は印刷、送信、実行するコマンドがログにあったことが分かりました。よく見てみると、なぜカンマが余分にあるのでしょうか。彼はもう一度眼鏡をこすって、正しく見えていることを確認しました。
この際、コードを遡って見てみると、この MessageFormat
に何か問題があるのですが、今のところ証拠は見つかりません。
public Integer getMaxIndex() { // 返回最大的索引值 1035 } public String queyBySsh() { // 这里期望拼接的命令是 show index 1035,但是实际的命令却是 show index 1,035 // 最终得到的命令多了个英文的逗号 String command = MessageFormat("show index {0}", getMaxIndex()); // 通过SSH执行这个命令查询 }
そこで突然、以前見たことのある Wiki のことを思い出しました。その Wiki には、MessageFormat
についての説明が記載されていたようです。早速見てみたら、案の定、MessageFormat
のパラメータが数値型の場合、3桁を超える場合は3桁ごとにカンマが追加されると書いてありました。 。したがって、上記のコードロジックによれば、show Index 1,035
が得られますが、結果には余分な英語のカンマがあり、手動で spliced コマンドを実行してもデータを見つけることができません。事件はついに解決しました、花を広げて、花を広げて、花を広げてください! ! !
最初の方法は、数値を文字列に変換してから書式設定することです。上記のコードを次のように変更します:
public String queyBySsh() { // 这里拼接的时候先调用一下 String.valueOf() 方法 String command = MessageFormat("show index {0}", String.valueOf(getMaxIndex())); }
2 番目の方法この方法は、MessageFormat
の FormatStyle
を追加し、上記のコードを次のように変更します:
public String queyBySsh() { // 这里的 # 就是定义的 FamatStyle String command = MessageFormat("show index {0, number, #}", getMaxIndex()); }
以上がJava で MessageFormat を使用する場合、どのような問題に注意する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。