本篇內容主要講解“Java使用MessageFormat應注意什么問題”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java使用MessageFormat應注意什么問題”吧!
看了一段時間還是沒有什么頭緒,這個時候內心開始慌了。趕緊看了一下提交記錄,確認了一下代碼不是我寫的,于是心里稍稍微淡定了一點,別人問起也好說不是我寫的嘛!雖然代碼不是我寫的,但是問題還是要繼續看的。畢竟拿了錢,就要干活的嘛。
接下來就只能分析代碼了。首先分析了一下最有可能出錯的地方,就是解析命令查詢的響應邏輯。把這個地方的代碼和手動執行命令得到的結果放在一起分析,發現根據這個響應結果是能夠正常的得到響應結果的??戳艘粫阂泊_實沒有發現問題,又去看了一下命令拼接的代碼,拼接的邏輯就一行,應該是不會出問題的。沒辦法了,又去看了看日志,這個時候發現日志里面有打印發送執行的命令。定睛一看,我擦,咋多了個逗號呢?又揉了揉眼鏡,確認自己沒有看錯誤。
這個時候再回去看一下代碼,怎么看這個 MessageFormat 都有點問題,但是一時又找不到啥證據。
public Integer getMaxIndex() {
// 返回最大的索引值 1035
}
public String queyBySsh() {
// 這里期望拼接的命令是 show index 1035,但是實際的命令卻是 show index 1,035
// 最終得到的命令多了個英文的逗號
String command = MessageFormat("show index {0}", getMaxIndex());
// 通過SSH執行這個命令查詢
}后來突然想起來之前看到過的一個Wiki,好像有關于描述 MessageFormat 的注意事項。趕緊去找來看一下,果然里面有寫到當 MessageFormat 的參數是數字類型時,當數字超過 3 位數字以上時,每隔 3 位會多增加一個因為的逗號。所以根據上面的代碼邏輯得到的就是 show index 1,035 了,結果中多了個英文的逗號,而將這個拼接出來的命令手動執行是查不出來數據的。終于破案了,撒花,撒花,撒花?。?!
第一種方法是將數字轉為字符串,然后再進行格式化,將上面的代碼修改為如下:
public String queyBySsh() {
// 這里拼接的時候先調用一下 String.valueOf() 方法
String command = MessageFormat("show index {0}", String.valueOf(getMaxIndex()));
}第二種方法是增加 MessageFormat 的 FormatStyle,將上面的代碼修改為如下:
public String queyBySsh() {
// 這里的 # 就是定義的 FamatStyle
String command = MessageFormat("show index {0, number, #}", getMaxIndex());
}到此,相信大家對“Java使用MessageFormat應注意什么問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。