为什么这在 Java 中不起作用而在 C# 中有效?
String a = "Hello %s";
String b = "World";
String c = String.format("%s", a, b);
println c
预期输出:
Hello World
实际输出:
Hello %s
最佳答案
String#format
不会评估已解析的模式来检查是否还有任何标记。它采用替代参数并将其“按原样”插入格式中指定的所需位置。所以你在那里所做的就是你在输出中看到的 - 首先进行替换。由于格式中没有更多标记,因此忽略 b
。
但是,格式本身可以是可变的,所以也许您想这样做:
String a = "Hello %s";
String b = "World";
String c = String.format(a, b);
这将在 c
Hello World
关于具有嵌套格式的 Java String 格式不显示实际输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330954/