首页 > Java > java教程 > 使用Java中的MessageFormat需注意哪些问题?

使用Java中的MessageFormat需注意哪些问题?

WBOY
发布: 2023-04-22 20:31:06
转载
1233 人浏览过

问题排查

看了一段时间还是没有什么头绪,这个时候内心开始慌了。赶紧看了一下提交记录,确认了一下代码不是我写的,于是心里稍稍微淡定了一点,别人问起也好说不是我写的嘛!虽然代码不是我写的,但是问题还是要继续看的。毕竟拿了钱,就要干活的嘛。

接下来就只能分析代码了。首先分析了一下最有可能出错的地方,就是解析命令查询的响应逻辑。把这个地方的代码和手动执行命令得到的结果放在一起分析,发现根据这个响应结果是能够正常的得到响应结果的。看了一会儿也确实没有发现问题,又去看了一下命令拼接的代码,拼接的逻辑就一行,应该是不会出问题的。没办法了,又去看了看日志,这个时候发现日志里面有打印发送执行的命令。定睛一看,我擦,咋多了个逗号呢?又揉了揉眼镜,确认自己没有看错误。

这个时候再回去看一下代码,怎么看这个 MessageFormat 都有点问题,但是一时又找不到啥证据。

1

2

3

4

5

6

7

8

9

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 了,结果中多了个英文的逗号,而将这个拼接出来的命令手动执行是查不出来数据的。终于破案了,撒花,撒花,撒花!!!

如何解决

第一种方法是将数字转为字符串,然后再进行格式化,将上面的代码修改为如下:

1

2

3

4

public String queyBySsh() {

    // 这里拼接的时候先调用一下 String.valueOf() 方法

    String command = MessageFormat("show index {0}", String.valueOf(getMaxIndex()));

}

登录后复制

第二种方法是增加 MessageFormatFormatStyle将上面的代码修改为如下:

1

2

3

4

public String queyBySsh() {

    // 这里的 # 就是定义的 FamatStyle

    String command = MessageFormat("show index {0, number, #}", getMaxIndex());

}

登录后复制

以上是使用Java中的MessageFormat需注意哪些问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:yisu.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板