为了账号安全,请及时绑定邮箱和手机立即绑定

java格式化问题

java格式化问题

智慧大石 2019-03-08 14:11:53
代码是这个样子的:String[] formats = {"%1$-9d","%1$#5X","%1$+9d","%1$09d","%1$,9d","%1$(9d"};//java中没有foreach关键字,但可以用for (type varname : iterable)实现foreachfor(String format : formats){int num = -9999999;String formated = String.format(format,num);System.out.println(formated);String output = String.format("String.format(\"%1s\",%2$d) == \"%3s\"",format,num,formated) ;System.out.println(output);}输出如下:-9999999 String.format("%1$-9d",-9999999) == "-9999999"0XFF676981String.format("%1$#5X",-9999999) == "-9999999"-9999999String.format("%1$+9d",-9999999) == "-9999999"-09999999String.format("%1$09d",-9999999) == "-9999999"-9,999,999String.format("%1$,9d",-9999999) == "-9999999"(9999999)String.format("%1$(9d",-9999999) == "-9999999"可以看到formated是正确格式化的结果,而最后的完整输出中==后面的字符串是错误的,为什么?谢谢
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

参数索引 
参数索引是一个十进制整数,用于表明参数在参数列表中的位置。第一个参数由 "1$" 引用,第二个参数由 "2$" 引用,依此类推。

"String.format(\"%1s\",%2d) == \"%3s\""
去掉$符号就可以了

查看完整回答
反对 回复 2019-04-26
  • 1 回答
  • 0 关注
  • 359 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信