System.out.printf和String.format之间的区别

时间:2010-06-20 17:02:03

标签: java

我可能知道java中两者有什么区别?我正在读一本书,它可以使用它来显示字符串。

6 个答案:

答案 0 :(得分:20)

first one写入stdoutsecond one会返回String个对象。

使用哪个取决于唯一的目的。如果要在stdout(控制台)中显示字符串,请使用第一个字符串。如果要获取格式化字符串的句柄以在代码中进一步使用,请使用第二个。

答案 1 :(得分:8)

String.format返回一个新的String,而System.out.printf只显示新格式化的String到System.out,有时也称为控制台。

这两段代码在功能上是等效的:

String formattedString = String.format("%d is my favorite number", 42);
System.out.print(formattedString);

System.out.printf("%d is my favorite number", 42);

答案 2 :(得分:1)

String.format格式化字符串,不显示它们。我认为你的意思是System.out.println(String.format("......", ....))或类似的构造?

答案 3 :(得分:1)

String.format返回格式化字符串。 System.out.printf还会打印格式化的字符串。

答案 4 :(得分:1)

这两种方法表现出完全相同的行为。我们可以将格式(...)与String,Java.util.Formatter(J2SE 5)以及PrintWriter一起使用。

答案 5 :(得分:0)

System.out.printf()String.format() 方法的主要区别在于

  • printf() 将格式化后的字符串打印到控制台,很像 System.out.println() 但是
  • format() 方法返回一个格式化的字符串,您可以按照自己的方式存储或使用该字符串。

其他使用性质根据其功能而不同 -

在数字中添加前导零的示例:

int num = 5;      
String str = String.format("%03d", num);  // 0005    
System.out.printf("Original number %d, leading with zero : %s", num, str);