Java相当于Python的格式()

tsh*_*ang 32 java string

这是进行字符串替换的两种方法:

name = "Tshepang"
"my name is {}".format(name)
"my name is " + name
Run Code Online (Sandbox Code Playgroud)

如何使用Java执行与第一种方法类似的操作?

Paŭ*_*ann 35

name = "Pa?lo";
MessageFormat f = new MessageFormat("my name is {0}");
f.format(new Object[]{name});
Run Code Online (Sandbox Code Playgroud)

或更短:

MessageFormat.format("my name is {0}", name);
Run Code Online (Sandbox Code Playgroud)


Sri*_*thy 27

String s = String.format("something %s","name");
Run Code Online (Sandbox Code Playgroud)

  • `%s`说明符没有指定**参数是一个字符串**,但**请将参数格式化为字符串**.如果参数实现`Formattable`,它会调用`formatTo`方法,否则调用`toString`方法.因此它适用于**任何对象**,数字也是如此. (9认同)
  • 有没有办法避免必须指定类型(例如`%s`),因为Python的`format()`函数允许? (2认同)