具有嵌套格式的 Java String 格式不显示实际输出

标签 java string

为什么这在 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/

相关文章:

sql - 在 Oracle 中快速生成连接字符串的方法

十六进制到十六进制的 Python 字符串(带前导零)

java - notepad++查找功能如何工作?

java - 在java中比较两个csv文件并对double进行近似匹配

java - 基本乘法和除法 Java GUI

java - 如何在 Java 中查找字符串模式

c++ - 在 C++ 中连接不同类型的字符串

ruby - 如何替换字符串中的字符

java - 是否可以在 JList 中的一个 JLabel 上使用不同的字体颜色?

java - 垂直方向、从右到左的中文文本 JList