【问题标题】:How to use String.format() in Java? [duplicate]如何在 Java 中使用 String.format()? [复制]
【发布时间】:2014-04-20 10:15:56
【问题描述】:

我是 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() 的工作原理以及上述格式的工作原理。感谢您的帮助!

【问题讨论】:

  • 该方法使用the Formatter javadocs 中描述的Formatter 语法。
  • 将其作为答案发布@regettman,我正要这样做,但你已经把它放在这里了,所以现在我觉得如果我这样做了,我会偷猎:P

标签: java string class formatting


【解决方案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】:

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

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

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

    System.out.println(s);
    

    你好 placeofm 回答了你的问题

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多