如何在Java中使用String.format()?

时间:2014-03-14 22:05:27

标签: java string class formatting

我是Java的初学者,我使用的是newboston的java教程(youtube)。在教程36-37,他开始使用String.format();他在过去的教程中没有解释过。以下是他正在制作的课程的代码:

    public class tuna {
        private int hour;
        private int minute;
        private int second;

        public void setTime(int h, int m, int s){
            hour = ((h >= 0 && h < 24) ? h : 0);
            minute = ((m >= 0 && m < 60) ? m : 0);
            second = ((s >= 0 && s < 60) ? s : 0);
        }

        public String toMilitary(){
            return String.format("%02d:%02d:%02d", hour, minute, second);
        }
    }

所以他正在做的是他正在做一些军事时间课并使用String格式。所以我要问的是,有人可以向我解释String.format()的工作原理以及上面的格式是如何工作的。谢谢你的帮助!

2 个答案:

答案 0 :(得分:29)

它的作用与C的printf()相同。

  

%s - &gt;串

     

%d - &gt; INT

     

%f - &gt;浮

提前

String.format("%02d", 8) - &gt;输出:08 String.format("%02d", 10) - &gt;输出:10 String.format("%04d", 10) - &gt;输出:0010

所以基本上,它将在表达式,变量或原始类型之前填充0的数字作为第二个参数,0&#39; s将以这样的方式填充,即所有数字都满足第一个String API的格式方法的参数。

答案 1 :(得分:10)

它只需要变量hourminutesecond,并将其格式化为05:23:42。也许另一个例子是:

String s = String.format("Hello %s answered your question", "placeofm");

当您打印字符串以在控制台中显示它时,它看起来像这样

System.out.println(s);
  

Hello placeofm回答了你的问题

占位符%02d用于包含两位数的十进制数字。 %s用于上面示例中的我的名字。如果你想学习Java,你必须阅读文档。 Here it is for the String class。您可以通过一个很好的解释找到格式方法。阅读这些文档非常重要,即使在Java中也是如此。