Java使用MessageFormat应注意什么问题

本篇内容主要讲解“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应注意什么问题”有了更深的了解,不妨来实际操作一番吧!这里是蜗牛博客网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论电报频道链接