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

2022-09-01 16:55:32

我是Java的初学者,我正在使用thenewboston的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.format()是如何工作的,以及上面的格式是如何工作的。感谢您的帮助!


答案 1

它的工作原理与 C 的 printf() 相同。

%s for String 
%d for int 
%f for float

提前

String.format("%02d", 8)

输出:08

String.format("%02d", 10)

输出:10

String.format("%04d", 10)

输出:0010

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


答案 2

它只采用变量 , ,并将其格式设置为 05:23:42。也许另一个例子是这样的:hourminutesecond

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

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

System.out.println(s);

你好,普拉斯米回答了你的问题

占位符表示具有两位数字的十进制数。 是上面示例中我的名字一样的字符串。如果你想学习Java,你必须阅读文档。这里是 String。你可以找到格式方法和一个很好的解释。阅读本文档非常重要,即使在Java中也是如此。%02d%s