System.out.printf和System.out.format的区别

ComeFromBaidu 2014-10-02 12:13:14
两者使用方法和printf格式化输出差不多
System.out.printf和System.out.format有什么区别呢?

还有,如何把格式字符串提取出来呢?
例如:System.out.printf("%1$s,%1$s%2$s!", "Hello","World");
我想提取出来 String string="Hello,HelloWorld!";
...全文
873 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SerenoShen 2014-10-04
  • 打赏
  • 举报
回复
引用 4 楼 msn1277421237 的回复:
谢谢你的回答!我居然忘记可以用"+",哎╮(╯▽╰)╭,脑子不灵活了 不过也有些比较麻烦的特别是%t,例如: Date date=new Date(); System.out.printf("%tF",date); //2014-10-03 如果能直接取出”2014-10-03“就比较方便 呵呵O(∩_∩)O~可能是我懒
这个可以采用格式输出啊!java提供了相应的类库SimpleDateFormat
ComeFromBaidu 2014-10-03
  • 打赏
  • 举报
回复
谢谢你的回答!我居然忘记可以用"+",哎╮(╯▽╰)╭,脑子不灵活了 不过也有些比较麻烦的特别是%t,例如: Date date=new Date(); System.out.printf("%tF",date); //2014-10-03 如果能直接取出”2014-10-03“就比较方便 呵呵O(∩_∩)O~可能是我懒
SerenoShen 2014-10-02
  • 打赏
  • 举报
回复
引用 1 楼 shenlei19911210 的回复:
System.out.printf和System.out.format 两者是等价的的!两者均是Java SE5 以后引入的,和普通的print方法相比,printf() 并不使用重载过后的 “+” 操作符来连接引号内的字符串或是字符串变量,而是使用特殊的占位符来表示数据将来的位置。
楼主提到的两种输出方式都不能使用重载后的“+”,楼主为什么不是用更早的print()方法能,我也没有看出楼主输出String string="Hello,HelloWorld!";的意义所在,如果是单纯的想构造出一个这样的字符串,可以使用StringBuilder或是直接拼接一个字符串出来啊!
SerenoShen 2014-10-02
  • 打赏
  • 举报
回复
System.out.printf和System.out.format 两者是等价的的!两者均是Java SE5 以后引入的,和普通的print方法相比,printf() 并不使用重载过后的 “+” 操作符来连接引号内的字符串或是字符串变量,而是使用特殊的占位符来表示数据将来的位置。
ComeFromBaidu 2014-10-02
  • 打赏
  • 举报
回复
那请问,第二个问题呢?如何解决

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧