Java:相当于Python的str.format()

时间:2015-10-22 13:08:58

标签: java python string

在Python中,有一种非常好的方法可以简化字符串的创建,使代码美观,可读。

例如,以下代码将打印ExampleProgram -E- Cannot do something

print_msg('E', 'Cannot do something')
def print_msg(type, msg):
    print 'ExampleProgram -{0}- {1}'.format(type, msg)

即。我可以指定" slot"在字符串中,使用{x}语法,其中x是参数索引,然后返回一个新字符串,在该字符串中用传递给.format()方法的参数替换这些插槽

目前有了我的Java知识,我会以这种丑陋的方式实现这样的方法:

void printMsg(String type, String msg) {
    System.out.println("ExampleProgram -" + type + "- " + msg);
}

是否有类似于Python .format()字符串方法的内容?

4 个答案:

答案 0 :(得分:6)

MessageFormat具有确切的用法。

 int planet = 7;
 String event = "a disturbance in the Force";

 String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
     planet, new Date(), event);

您可以简单地使用{0123}而无需额外内容。 输出是:

 At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

答案 1 :(得分:5)

System.out.format("ExampleProgram - %s - %s ",type, msg);

您可以使用System.out中的格式方法。

然后使用以下内容:

 String output = String.format("ExampleProgram - %s - %s ", type, msg);

此处typemsg属于String类型。

对于任何整数使用%d,浮点%fString %s

您可以在java文档中找到有关格式输出的不同方式的所有信息。 Formatting Numeric Print Output

答案 2 :(得分:4)

例如:

String s = String.format("something %s","name");

答案 3 :(得分:1)

System.out.printf()怎么样?那么你可以使用c样式格式