“我还想告诉你有关String.format方法的信息。”
“它是String类的一个静态方法,但是非常有用,让我绕一圈。”
“如果你需要在一行文本中显示多个变量,你会怎么做?”
“什么文字?”
“这个,例如:”
给定以下变量:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
所需输出:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}
“我会这样做:”
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");
“不太可读,是吗?”
“我觉得还行。”
“但是如果你有很长的变量名或者你需要调用方法来获取数据,那么它就不会很可读:”
System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");
“好吧,如果是那样的话,那么,是的,它的可读性就不会很好。”
“事实上,这种情况在实际程序中经常发生,因此我想向您展示如何使用 String.format 方法简化您的生活。”
“请快告诉我,这是什么神功?”
“你可以这样写上面的代码:”
String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())
System.out.println(text);
“ String.format方法的第一个参数是一个格式字符串,它包含特殊字符(%s、%d),无论我们想在何处放置值。”
“在格式字符串之后,我们传递将替换 %s 和 %d 字符的值。”
“如果我们需要插入一个字符串,那么我们写 %s;如果我们需要一个数字,那么我们使用 %d。”
“在示例中会更容易看到这一点:”
例子
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
结果:
s 将等于 «a = 1, b = 4, c = 3»
“嗯,很方便。”
“你也可以这样做:”
例子
int a = -1, b = 4, c = 3;
String template;
if (a < 0)
template = "Warning! a = %d, b = %d, c = %d";
else
template = "a = %d, b = %d, c = %d";
System.out.println(String.format(template, a, b, c) );
输出:
Warning! a = -1, b = 4, c = 3
“嗯。这真是一个有用的方法。谢谢,艾莉。”
“如果你想在格式化方法中使用其他数据类型,这里有一个表格可以帮助你:”
象征 | 类型 |
---|---|
%s | 细绳 |
%d | 整数:int、long 等。 |
%F | 实数:float, double |
%b | 布尔值 |
%C | 字符 |
%t | 日期 |
%% | 百分号 % |
“实际上,这些格式说明符也有自己的设置和子集。”
“但这足以让你开始。如果没有,这里是官方文档的链接:”
GO TO FULL VERSION