溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java使用MessageFormat應注意什么問題

發布時間:2022-06-20 11:53:17 來源:億速云 閱讀:146 作者:iii 欄目:開發技術

本篇內容主要講解“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應注意什么問題”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女