我可能知道java中两者有什么区别?我正在读一本书,它可以使用它来显示字符串。
答案 0 :(得分:20)
first one写入stdout和second 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() 方法的主要区别在于
其他使用性质根据其功能而不同 -
在数字中添加前导零的示例:
int num = 5;
String str = String.format("%03d", num); // 0005
System.out.printf("Original number %d, leading with zero : %s", num, str);